c++文件输入输出的问题
我想在在textfile.txt文件中先写入再读取文件内容,字符数,行数,字符写进去了,但while(myfile.getline(line,1700))并不执行,这是怎么回事 ,求大神指点。 执行文件写入操作后有些奇怪的字符:屯屯屯屯屯屯屯屯屯屯屯屯
并且以一个?结尾。我试过修改文件内容,发现屯太多的情况下while(myfile.getline(line,1700))的语句不奏效,少数是可以。
#include "stdafx.h"
#include <string>
#include <iostream>
#include <fstream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
fstream myfile,myfile1,file;
int num=0,row=0,i=0;
char line[1700],a[1700];
myfile.open("C:\\Users\\450606975\\Desktop\\textfile.txt",fstream::in|ios::out);
if(!myfile)
{
cerr <<"文件打开或创建错误。"<<endl;
exit(1);
}
for(i=0;i<4;i++)
{
cin>>line;
myfile<<line;
}
while(myfile.getline(line,1700))
{
cout<<line<<endl;
row++;
num+=myfile.gcount();
}
cout<<"字符数:"<<num<<'\t'<<"行数:"<<row<<endl;
myfile.close();
return 0;
} c++ iostream
[解决办法]
int main(int argc, char* argv[])
{
// 往 文 件 中 写 入 内 容
ofstream f1("F:\\test\\a.txt");
int num=0,row=0,i=0;
char line[100]={0};
if(!f1)
{
cerr <<"文件打开或创建错误。"<<endl;
exit(1);
}
for(i=0;i<4;i++)
{
cin>>line;
f1<<line<<endl;
}
f1.close();
// 读 取 文 件 中 的 内 容
ifstream f2("F:\\test\\a.txt");
memset(line,0,sizeof(line));
while(f2>>line)
{
cout<<line<<endl;
row++;
memset(line,0,sizeof(line));
}
cout<<"行数:"<<row<<endl;
f2.close();
return 0;
}