我正在开发一个程序,将用户输入写入文件,然后在文件中搜索特定记录并将其输出到屏幕。
我试过使用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”打开)读取的。

10-06 13:09