2015-06-19 89 views
0

我想從文本文件中讀取文本到我的C++代碼中。這裏是我的代碼: -在C++中逐行讀取文本文件

f.open(input); 
if (f) 
{ 
    while(!f.eof()) 
    { 
     LinkedList obj; 
     string c, d, l; 
     f>>c>>d>>l; 

     nodes.push_back(c); 
     nodes.push_back(d); 

     vector<string> temp; 
     temp.push_back(c); 
     temp.push_back(d); 
     temp.push_back(l); 
     vecNodes.push_back(temp); 
    } 
} 

我的文本文件低於:

a b c 
a c 
d e 
e 
g h a 

我的問題是我怎麼可以一次讀取一行。當我的代碼讀取第二行時,它也會讀取第三行的第一個字符,這是錯誤的。我知道我可以在每行可能工作的末尾加上分隔符。有沒有其他方法可以做到這一點?

+0

可能的重複[是否有一個C++迭代器,可以逐行遍歷文件?](http://stackoverflow.com/questions/2291802/is-there-ac-iterator-that-c​​an-iterate-逐行逐行) –

+0

可能出現[一次一行讀取文件]的副本(http://stackoverflow.com/questions/26953360/read-from-a-file-line-by-行) – Galik

+0

您應該首先搜索StackOverflow。已經有很多答案了。在你的搜索欄中試試這個:stackoverflow C++讀取文件空間分隔「 –

回答

2

您可以通過讀取線符合這下面的代碼文件:

string line; 
ifstream myfile; 
myfile.open("myfile.txt"); 

if(!myfile.is_open()) { 
    perror("Error open"); 
    exit(EXIT_FAILURE); 
} 

while(getline(myfile, line)) { 
    // do things here 
} 

然後通過空間的字符串分割,並在列表中添加元素。

+0

值得添加最簡單的方法來分割空間:'stringstream ss(line); while(ss >> token){/ * do stuff */}' – user4581301