正在嘗試讀取多個.txt文件並將每行文本中的每行都push_back爲一個字符串類型的向量。因此: :第一個文件有200行。 第二個文件有800行。讀取多個.txt文件C++ linux
但是,我有一個問題,直到它結束讀取第二個文件。
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <vector>
using namespace std;
struct data
{
string from_file_1;
string from_file_;
};
int main()
{
data my_data;
string file_1="file1.txt";
string file_2="file2.txt";
ifstream file_one(file_1.c_str);
ifstream file_two(file_2.c_str);
Vector<data> mydata;
int max_chars_per_line=100000;
while(!file_one.eof()&&!file_two.eof())
{
char buf[max_chars_per_line];
file_one.getline(buf, max_chars_per_line);
string str(buf);
char buf2[max_chars_per_line];
file_two.getline(buf2, max_chars_per_line);
string str2(buf2);
my_data.from_file_1=str;
my_data.from_file_2=str2;
mydata.push_back(my_data);
}
//when loop exits, the size of the vector ,mydata, should be greater than 200+, but doesn't work .
return 0;
}
感謝您抽出時間來幫我。
但是,在檢測到文件結束後,不會'eof()'返回'true',所以在最後一行有可能出現讀取錯誤? – trojanfoe 2014-08-28 14:20:27
這不會工作,因爲條件是錯誤的。 – quantdev 2014-08-28 14:20:40
檢查'eof()'不會像別人指出的那樣做你所期望的。 – Galik 2014-08-28 14:22:39