2 q997302482 q997302482 于 2016.05.03 09:24 提问

求C语言大牛帮忙解答,输完password之后就异常终止了

/*用户注册文件*/
#include
#include
#define N 1
struct User
{
char num[20];
char name[10];
char password[7];
float balance;
}user[N];
int main()
{
int i;
FILE *fp;
//输入注册信息
for(i = 0;i < N; i++)
{
printf("input num & name & password & balance: \n");
printf("num:");
gets(user[i].num);
printf("name:");
gets(user[i].name);
printf("password:");
gets("user[i].password");
printf("balance:");
scanf("%f",&user[i].balance);
getchar();
}
if((fp = fopen("all user information.dat","ab"))== NULL)
{
printf("It cannot open!");
}
for(i = 0;i < N;i++)
fwrite(&user[0],sizeof(struct User),1,fp);
fclose(fp);
if((fp = fopen("user information.dat","ab"))== NULL)
{
printf("It cannot open!");
}
for(i =0 ;i < N; i++)
fwrite(&user[0],sizeof(struct User),4,fp);
fclose(fp);
printf("注册成功!");

    /*读取用户信息:检查是否成功*/
    if((fp = fopen("user information.dat","r"))== NULL)
    {
        printf("It cannot open!");
        exit(0);
    }
    i = 0;
    while(!feof(fp))
    {
        fread(&user[i],sizeof(struct User),1,fp);
        i++;
    }
    i=i-1;
    fclose(fp);
    printf("\n\n");
    for(i = 0;i < N; i++)
    {
        printf("num:%s\n",user[i].num);
        printf("name:%s\n",user[i].name);
        printf("password:%s\n",user[i].password);
        printf("balance:%.2f\n",user[i].balance);
    }
    return 0;

}

1个回答

caozhy
caozhy   Ds   Rxr 2016.05.03 09:38

gets(user[i].num);
->
gets(&user[i].num);

后面类似

caozhy
caozhy 回复q997302482: 那还有别的错误,仔细调试下
大约 2 年之前 回复
q997302482
q997302482 还是不行。
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C语言大牛的心得
本文转自     今天,我能够自称是一个混IT的人,并能以此谋生,将来大家能一次谋生,都要感谢两个人:克劳德.香农和约翰.冯.诺依曼,是他们发现了所有的数字化信息,不论是一段程序,一封email,一部电影都是用一连串的1和0进行编码的;是他们发现了我们可以利用一个预先编写好的程序控制机器,并使之完成我们期望它完成的动作。建议大家在心里默念三遍他们的名字,以示仰慕。当然,如果让你们带着现在的知识回
由一个程序异常终止问题学到的
      前段时间运行一个开源软件,运行了3个小时余便突然停止了,没有抛什么异常,仅仅是报告一个错误说程序异常终止 。我这可纳了闷,别人用起来好好的东西,一到我手里就出了问题,还一点线索都没有。后来问了师兄,了解了一些可能出错的原因:       1、一个线程申请的内存空间过大,比如4G以上。对于32位机来说,寻址空间最大就到4G,所以单个线程不能申请如此之大的空间,否则,程序很容易出现错误
关于mysql数据库在输入密码后,滴的一声直接退出界面的解决办法(详细办法)
前一阵子,由于写程序要用到数据库,便在本子上下载了一个,却出现很多小问题(自己的台式机却没有该问题,可能是本人的本子太渣了吧),纠结了好一阵,回头想想,发现问题,分析问题,解决问题,不就是我们的软件管理的思想嘛,只有经历过问题,才能深刻理解。废话不多说了,直接上题。 下载好mysql后,当你打开mysql的字符界面时(MySQL 5.5 Command Line Client),输入密码(在安装
解决命令下登录MySQL输入密码后一闪退出的问题
文章出处:http://www.51ou.com/browse/msyql/53394.html             MySQL命令窗口输入密码后一闪退出的问题,这情况一般是输入的密码不对造成的。如果确认密码是正确的话,不是一闪退出,可按下面的方法解决 于是就 想到了直接跳过       MySQL 命令窗口输入密码后一闪退出的问题,这情况一般
求高手帮忙解答下
java.io.FileNotFoundException: E:\ProgramData\Users\lzl\work\work\students.xml (系统找不到指定的文件。)  at java.io.FileInputStream.open(Native Method)  at java.io.FileInputStream.(Unknown Source)  at java.io
213. 大牛们的午饭
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;iostream&amp;gt; #define max 1000100 #define MAX(x, y) (x) &amp;gt; (y) ? (x) : (y) #define For(i, m, n) for (i = m; i &amp;lt; n; ++i) using namespace std; int a[max], b[max]...
离散题目18--求传递闭包
离散题目18 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 给出一个集合A和A上的关系R,求关系R的传递闭包。 例如: A={0,1,2} , R={,,,,}    t(R) = {,,,,,,}; Input 多组输入,输入n、m,集合A=
历届试题 九宫重排 (bfs 康托判重)
问题描述   如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着。与空格子相邻的格子中的卡片可以移动到空格中。经过若干次移动,可以形成第二个图所示的局面。   我们把第一个图的局面记为:12345678.   把第二个图的局面记为:123.46758   显然是按从上到下,从左到右的顺序记录数字,空格记为句点。   本题目的任务是已知九宫的初态和终态,求最少经过
ubuntu无法进入图形界面——输完密码,卡在那里
ubuntu无法进入图形界面 2011-1-5 23:53 提问者: lezhenhuan 通过wubi安装的ubuntu10.10,用了很久了一直没有出现什么问题,今天提示有一些补丁需要更新,十几个吧,40多M,在更新完毕后,提示重新启动。重启后到系统载入是出现屏幕闪烁的情况,之后系统进入提示符界面,可以登录,但是没法使用图形界面了。这是怎么回事的,期待达人指点。
C语言实现 1-1/2+1/3-1/4...-1/100
C语言实现 1-1/2+1/3-1/4...-1/100