在这个程序中,我试图在文件上输入文本数据,但是没有正确写入。
在我的主要内容中,我得到了数据......
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);
function我将validate函数给出的值写入我的文件。
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+");
每当我在文件调用中传递参数时调用该函数,在我摆脱它之后它才能正常工作。
修正了它。