2015-06-19 73 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