您的位置:首页 > 编程语言 > C语言/C++

c++中读取文本文件单行数据的正确做法

2013-12-28 19:50 162 查看
网络上大部分读取文本文件中单行数据的做法如下,

ifstream inFile;//(sFileName.c_str(),std::ios::in);

inFile.open(sFileName.c_str(),ios::in|ios::binary);
if (inFile.fail())
{
fprintf(stderr,"file %s open error!\n",sFileName.c_str());
return false;
}
do 
{
std::string sLine;
std::getline(inFile,sLine);
fprintf(stdout,"%s\n",sLine.c_str());
} while (!inFile.eof());

在vs2005中这段代码对路径中包含中文的文件总是inFile.fail()返回,需要在程序运行的时候加上

setlocale(LC_ALL,"Chinese-simplified");

更直接的做法是使用c语言的fgets,读取文件中单行遇到\n的时候返回

FILE *fp = fopen("main.cpp","rb");
if (NULL != fp)
{
char szLine[256] = {0}; //一行数据
while(fgets(szLine,256,fp)) //最大读取256字节,但是遇到\n时候fgets返回,这是szLine中保存的正好是一行的数据
{
cout << szLine <<endl;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐