关于fread的问题求救啊!
////////////////////////////////问题一:fread读取乱码/////////////////////////
FILE* pFile = fopen("1.txt","r");
if( NULL == pFile )
{
AfxMessageBox("无法打开文件");
}
fseek(pFile,0,SEEK_END);
int len = ftell(pFile); //经过反复测试能够正确得出字符数目,说明读取没有问题
char *buffer = new char[len+1];
if ( NULL == buffer ) MessageBox("buffer错误"); //这里也没有出错
int a = fread(buffer,sizeof(char),len,pFile); //这里用sizeof(char)或者1函数返回都为0
/*CString tem;
tem.Format("%d",a);*/ //为了检测输出fread的返回值写的,无任何意义
buffer[len] = '\0'; //设置文件结尾
MessageBox(buffer); //结果输出为 屯屯.... 我晕!
fclose(pFile);
求救!小弟初学,学到读取文件这里。1.txt中的数据是我用fwrite写入的,可是读的话就读出 屯屯屯....郁闷。在网上查了半天发现别人显示乱码的问题属于结尾没有设置'\0',但是我也设置了啊。如果是读取失败的话也没提示......
///////////////////////////////////////////问题二//////////////////////////////////////////////
问题二:用ofstream替换fwrite //程序用fwrite写时候可以运行 改为ofstream后编译出错
using namespace std; //文件中包含了<fstream>
ofstream fout("1.txt"); //改成 fout.open(...) 结果一样
fout << "怎么不行啊!" <<endl;
fout.close(); // 写到fout.的时候系统会自动提示成员函数列表,推测系统已经识别了fout是个对象
错误提示 error C2065: 'ofstream' : undeclared identifier //出现这种错误很意外!
error C2146: syntax error : missing ';' before identifier 'fout'.....诸如此类.
这是第二个问题,请高手认真看完后帮我解答一下~ 小弟在此先谢过了!