首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++把数据写下文件。结果与预期不符

2013-08-25 
C++把数据写入文件。结果与预期不符write.h写入函数#includefstream.h//把数据写入文件int writefile(int

C++把数据写入文件。结果与预期不符
write.h
写入函数
#include<fstream.h>
//把数据写入文件
int writefile(int n){
ofstream Outfile;
char filename[16]="data.out"; 
Outfile.open(filename,ios::out);
if(!Outfile)
{
cout<<"open error!"<<endl;     //退出程序
}
else if(n=-1)
{
Outfile<<'\r\n';
}
else
{
Outfile<<n;
}
Outfile.close();
Outfile.clear();
return 0;
}



主函数
#include <iostream>
#include <fstream>
#include <ctime>
#include "random.h"
#include "write.h"
#include "read.h"
#include <string.h>
int main()
{
int m,n;
cout<<"please input m,n:"<<endl;
cin>>m>>n;
writefile(m);
writefile(n);
return 0;
}

例:m和n输入50 40
输出应在data.out里边生成50 40
但生成的是2573,也没有空格。请问是什么问题啊? C++ 文件 写入操作
[解决办法]
怎么我运行的结果是40.ios::out就是每次打开文件把文件内容清空再往里写。这也符合。
char filename[16]="data.out"; 感觉加上路径比较好,不知道默认的情况下在哪里生成这个文件。
[解决办法]
关键错误:

else if(n=-1)//n==-1!
{
Outfile<<'\r\n';
}


另外一个问题:
ios::out会把文件清空了再写,所以你第二次调用writefile的时候,就把第一次的清掉了,你只能看到第二次的数
[解决办法]
还有,'\r\n'这是两个字符,不能用单引号!你也就是为什么你看到的不是一个换行而是莫名其妙的2573
[解决办法]
我也觉得运行结果是40啊
ios::out换成ios::app

热点排行