我正在使用C++實現一個程序,並且我有一個從輸入文件創建下一行的問題。我用:如何從文件中獲取下一行
const MAX 300;
char oneline[MAX];
ifstream in;
in.open("input.txt);
in.getline(oneline,MAX);
功能getline
總是讓我在文件的第一行。問題是,我怎樣才能得到文件中的下一行?
我正在使用C++實現一個程序,並且我有一個從輸入文件創建下一行的問題。我用:如何從文件中獲取下一行
const MAX 300;
char oneline[MAX];
ifstream in;
in.open("input.txt);
in.getline(oneline,MAX);
功能getline
總是讓我在文件的第一行。問題是,我怎樣才能得到文件中的下一行?
std::string line;
while(in.good())
{
getline(in, line);
//do something with line
}
由於您使用C++,你應該使用的std :: string閱讀你的線條。
不可以。您應該使用'std :: string' *,無論您是否有理由將行限制爲特定數量的字符。 – 2011-06-02 15:04:15
沒有什麼特別的原因,但是while循環會得到輸入文件中的下一行? – Anon 2011-06-02 15:04:16
是的,循環將每行讀入字符串「line」。那麼你必須對它做些什麼。 – juanchopanza 2011-06-02 15:05:35
while (getline(in,line,'\n')){
//do something with line
}
你不需要'getline'的最後一個參數;它是默認的(如果你使用其他的東西,這個函數會被錯誤地命名爲:-))。 – 2011-06-02 15:16:24
再次致電getline? – 2011-06-02 15:01:24
does not work,我試過 – Anon 2011-06-02 15:02:09
然後顯示更多代碼。我無法重現你的問題;每次我打電話給'getline'時,我都會看到下一行。 (公平起見,我只使用'getline'來獲取一個'std :: string'。在你的代碼中,如果你的代碼行長度超過300個字符,你只會在第一個代碼中獲得前300個呼叫,下一個300,等等。) – 2011-06-02 15:19:14