2016-02-12 391 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()函數。我只是修改了你提供的內容,以突出哪裏出錯的地方。希望這有助於...