写入文件时,新行显示在旧行之前

时间:2012-12-04 22:36:07

标签: c file-io

在这个程序中,我试图在文件上输入文本数据,但是没有正确写入。

在我的主要内容中,我得到了数据......

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+");

每当我在文件调用中传递参数时调用该函数,在我摆脱它之后它才能正常工作。

修正了它。

0 个答案:

没有答案