我正在开发一个程序,将用户输入写入文件,然后在文件中搜索特定记录并将其输出到屏幕。
我试过使用fgets和fputs,但没有成功。这是我目前所拥有的。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main ()
{
FILE *fileptr;
char id [30];
char name [47];
char amt[50];
fileptr = fopen("C:\\Users\\Andrea\\Documents\\Tester.txt", "w");
if (fileptr == NULL) {
printf("File couldn't be opened\n\a\a");
fclose(fileptr);
exit(0);
}
printf("Enter name: \n");
fscanf(fileptr, "%c", name);
fputs(name, fileptr);
fclose(fileptr);
printf("File write was successful\n");
return 0;
}
最佳答案
使用:
fscanf(stdin, "%s", name);
但更好的是,使用scanf代替,正如kol提到的。这是因为scanf()用于从屏幕读取用户响应,而fscanf()用于从任何输入流(通常是文件)进行扫描。
语句应该是从屏幕(stdin)读取的,而不是从文件(仅以“write”打开)读取的。