请问下,getline里面第二个参数str出现在这里是做什么用的?

有如下语句:
ifstream fp1(astDataFileName.c_str());
if (!fp1)
{
cout << "fail in open " << astDataFileName.c_str() << endl;
cout << "get system size" << endl;
exit(0);
}
int k = 1;
string str;

for (;!fp1.eof();)
{
getline(fp1,str,'\n');
k++;
cout << str << endl;
}
请问下,fp1.eof()是怎么用的,每次读入一个字符,判断是不是文件结束符?
还有getline里面第二个参数str出现在这里是做什么用的?是不是读入一行,以换行符作为结束判断语句?下面的cout<<str会输出什么?

浮云间
浏览 227回答 3
3回答

拉丁的传说

这个是getline函数的原型及解释 怎么看着和你程序用法不太一样,特别是第二个参数的用法。istream &getline( char *buffer, streamsize num, char delim );getline()函数用于输入流,读取字符到buffer中,直到下列情况发生:num - 1个字符已经读入,碰到一个换行标志,碰到一个EOF,或者,任意地读入,直到读到字符delim。delim字符不会被放入buffer中。这个是eof的原型和解释 还有一个小例子语法:bool eof();如果到达相关联的输入文件的末尾,eof()函数返回true,否则返回false。例如:char ch;ifstream fin( "temp.txt" );while( !fin.eof() ) {fin >> ch;cout << ch;}fin.close();

慕仙森

1、istream &getline( char *buffer, streamsize num, char delim );getline()函数用于输入流,读取字符到buffer中,直到下列情况发生:num - 1个字符已经读入,碰到一个换行标志,碰到一个EOF,或者,任意地读入,直到读到字符delim。delim字符不会被放入buffer中。2、这eof的原型和解释 :语法:&nbsp; bool eof();如果到达相关联的输入文件的末尾,eof()函数返回true,否则返回false。例如:&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;ch;&nbsp;&nbsp;&nbsp;&nbsp;ifstream&nbsp;fin(&nbsp;"temp.txt"&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp;while(&nbsp;!fin.eof()&nbsp;)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fin&nbsp;>>&nbsp;ch;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;<<&nbsp;ch;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;fin.close();

三国纷争

1、c++示例:#include<iostream>#include<fstream>using&nbsp;namespace&nbsp;std;int&nbsp;main(){string&nbsp;textline[200];//欲读200行,自己定义&nbsp;int&nbsp;i=0,ii=0;ifstream&nbsp;fin("d:/test.txt");for(;!fin.eof();)//非文件尾部继续读{&nbsp;&nbsp;&nbsp;&nbsp;getline(fin,textline[i],'\n');//遇到换行符读一行。&nbsp;&nbsp;&nbsp;&nbsp;i++;}for(int&nbsp;ii=0;ii<i;ii++)&nbsp;&nbsp;&nbsp;&nbsp;cout<<textline[ii]<<'\n';&nbsp;return&nbsp;0;}2、eof()读到文件尾部返回真,非文件尾部返回假。3、getline()按行读取文本。
打开App,查看更多内容
随时随地看视频慕课网APP