在这个程序中,我试图在文件中输入文本数据,但它没有正确写入。
在我的主要,我得到数据的地方......
FILE *fp1 = NULL;
fp1 = fopen("accounts.dat", "a+");
printf ("\nEnter an account number (between 1000 and 5999): ");
accounts[i] = validateaccount();
printf ("Enter title for new account %d: ", accounts2[i]);
validatestring(accname, &i);
scan(accounts, accname, &i);
其中“validateaccount()”和“validatestring()”调用其他函数,这是我获取帐户/字符串值的地方。在里面
scan(accounts, accname, &i);
我正在将验证函数给出的值写入我的文件中。
void scan (int accounts[MAX], char accname[MAX][MAXSTRING], int *i) {
FILE *fp1;
fp1 = fopen("accounts.dat", "a+");
fprintf(fp1, "%d", accounts[*i]);
fprintf(fp1, ":");
fprintf(fp1, "%s\n", accname[*i]);
}
所以我的文件输入的格式应该是
1000:First
1200:Second
如果我的帐号 # 是 1000,名字是“First”。而输入的第二个账号是1200,“第二个”
但我得到的是这样的:
1200:Second
1000:First
当我'cat accounts.dat' ..第二个输入在我的第一个输入之前。为什么是这样?
问题是我在做
fp1 = fopen("accounts.dat", "a+");
每次我调用该函数时,我都可以在文件调用中传递参数,但在我摆脱它之后它可以正常工作。
解决它。