用C++处理文本文件中数据
1个回答
展开全部
网络上大部分读取文本文件中单行数据的做法如下,
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;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询