我正在使用C ++编译器在C(教师要求)中编程。
我正在阅读我的C教科书,并将他们的第一个示例程序复制到一个文件中,然后编译它。当我运行它(并在书中显示一些内容)时,没有任何内容写入文件。
int main(void) {
int account;
char name[30];
double balance;
FILE *cfPtr;
if ((cfPtr = fopen("clients.txt", "w")) == NULL) {
printf("File could not be opened\n");
}
else {
printf("Enter the account, name, and balance.\n");
printf("Enter EOF to end input.\n");
printf("? ");
scanf("%d%s%lf", &account, name, &balance);
while (!feof(stdin)) {
fprintf(cfPtr, "%d %s %.2f\n", account, name, balance);
printf("? ");
scanf("%d%s%lf", &account, name, &balance);
}
fclose(cfPtr);
}
return 0;
}
答案 0 :(得分:0)
我尝试了你的代码,它完美无缺。 我想你可能正在使用Windows编译器。 所以你应该使用ctrl-z作为EOF。 如果你是Linux用户..那么使用ctrl-z来给出EOF .. 但是如果您使用ctrl-c或任何其他中断键,那么您的数据将不会写入文件中,因为当您关闭FILE指针时它只保留在缓冲区中,然后只将缓冲区写入文件。