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;
}
}
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;
}
}
相关文章推荐
- C++ 读写文本文件、统计文件的行数、读取文件数据到数组
- C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组
- C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组
- 【转载】C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组
- C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组
- C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组
- C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组
- C++逐行读取文本文件的正确做法
- C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组
- C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组
- C/C++从文本文件读取数据
- C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组
- C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组 (转)
- C++逐行读取文本文件的正确做法
- C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组
- C++逐行读取文本文件的正确做法
- C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组
- C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组
- C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组
- 收集两个C++写的从文本文件中读取数据保存到数组的程序