2016-02-12 97 views
-2

我希望获得一个名为“test.txt”的txt文件的第一行帮助,我发现了getline函数,但我不确定为什么我的代码不起作用或我需要做的事情。我想从.txt文件中获得第一个行,但由于某种原因它会打印“t”。如果我没有正确处理它,请随时根据需要纠正我。这是我使用的代码:如何从.txt获取特定行(C++)

string FirstLine; 
ifstream File("test.txt"); 
string line; 

if (File) 
{ 
    while (getline(File, line)) 
    { 
     FirstLine = line[0]; 
    } 

    File.close(); 
} 
cout << FirstLine; 

这是.txt文件:

这是1号线

这是2号线

这是3

+0

如果你只想要第一行,那么你为什么有一个循环来继续阅读线?另外,'line [0]'是该行的第一个字符,所以你根本不保存任何行。 – crashmstr

+0

对第一个字符有意义啊。如何选择.txt的行? – AlphaAl

+0

'FirstLine = line;'将读取的行分配到'FirstLine'中,但是使用while循环,您将继续这样做直到文件结尾和FirstLine将成为最后一行。 – crashmstr

回答

2
线

如果您只想要第一行:

string line; 
getline(File, line); 
然后

你的文件的第一行存储在line的,你猜对了,串

要获得所有线(逐行):

while(getline(File, line).good()) 
    //do something with line 
0
string FirstLine; 
ifstream File("test.txt"); 
string line; 

if (File) 
{ 
    getline(File, line); 
    FirstLine = line; 
    File.close(); 
} 
cout << FirstLine; 

是绝对的最小变化你需要你的代码来使它做你想做的事情。但是,上述代码示例有很大的改进余地。例如,为什么要创建两个字符串,即lineFirstLine,只需将FirstLine传递给getline()函数。我只是修改了你提供的内容,以突出哪里出错的地方。希望这有助于...