c++关于eof及getline的用法
有如下语句:ifstreamfp1(astDataFileName.c_str());if(!fp1){cout<<"failinopen"<<astDataFileNa...
有如下语句:
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会输出什么? 展开
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会输出什么? 展开
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();
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的原型和解释 :
语法:
bool eof();
如果到达相关联的输入文件的末尾,eof()函数返回true,否则返回false。
例如:
char ch;
ifstream fin( "temp.txt" );
while( !fin.eof() ) {
fin >> ch;
cout << ch;
}
fin.close();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、c++示例:
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
string textline[200];//欲读200行,自己定义
int i=0,ii=0;
ifstream fin("d:/test.txt");
for(;!fin.eof();)//非文件尾部继续读
{
getline(fin,textline[i],'\n');//遇到换行符读一行。
i++;
}
for(int ii=0;ii<i;ii++)
cout<<textline[ii]<<'\n';
return 0;
}
2、eof()读到文件尾部返回真,非文件尾部返回假。
3、getline()按行读取文本。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询