读书人

`C++写入文件的有关问题`

发布时间: 2012-02-10 21:27:42 作者: rapoo

救命啊`C++写入文件的问题``在线等
#include <iostream>
#include <cstring>
#include <fstream>
using namespace std;

struct Userinfo
{
int id; //用户ID
int money; //余额
char pwd[7];// 密码
};

int main()
{
struct Userinfo user[100];
ofstream file;
int i;

for(i=0;i <=3;i++)
{
cout < < "请输入帐户: ";
cin> > user[i].id;
cout < < "请输入密码: ";
cin> > user[i].pwd ;
//cin.getline(user[i].pwd,sizeof(user[i].pwd));
if(!cin.good())//万一用户输入超过位,则输入流失效,故清理
{
cin.clear();
cin.ignore(1024, '\n ');//清除缓冲区
}

cout < < "请输入余额: ";
cin> > user[i].money;
}
file.open( "test.txt ");
if (file.fail())
{
cout < < "不能打开文件!!\n ";
exit(1);
}
else
file < <user;
file.close();
return 0;

}

[解决办法]
file < <user;

要么用 Write 方法,
要么逐个数据写文件,
比如改成这样:
file < <user[i].id < < "\t " < <user[i].pwd < < "\t " < <user[i].money < <endl;
[解决办法]
file.open( "test.txt ");
if (file.fail())
{
cout < < "不能打开文件!!\n ";
exit(1);
}
else
file < <user;
==》
file.open( "test.txt ");
if (file.fail())
{
cout < < "不能打开文件!!\n ";
exit(1);
}
else
for(i=0;i <=3;i++)
file < <user[i].id < < "\t " < <user[i].pwd < < "\t " < <user[i].money < <endl;


如果是用 write 方法,
注意用 2进制方式操作文件

读书人网 >C++

热点推荐