从键盘输入文本到文件中

时间:2013-10-02 13:05:16

标签: c

我想从键盘输入文本并将输入保存到文件中。

这是我尝试过的代码:

    char txt[1024];
        char nomFichier[50];
        char emp[100];
        char empEtNomFichier[150];
        printf("\nDonner le nom du fichier : ");
        scanf("%s", &nomFichier);
        printf("\nDonner l'emplacement du fichier : ");
        scanf("%s", &emp);
            snprintf(empEtNomFichier, sizeof(empEtNomFichier), "%s/%s", emp, nomFichier);
            fichier = fopen(empEtNomFichier,"a+");
            printf(empEtNomFichier);
            printf("\nEnter le text : ");
            while(!feof(stdin)) {
                fgets(txt, 1024, stdin);
                printf(stdin);
            if(strlen(txt) == 0) break;
            fputs(txt, fichier);
}

printf("End.");

问题是用户输入完成后我想跳过键入并显示“结束”。 while循环后的消息。

2 个答案:

答案 0 :(得分:1)

简短回答:只包含Ctrl + D字符(* n * x)或Ctrl + Z字符(Windows)(我认为)的行应该结束输入并使feof(stdin)返回非零值。

答案很长:这是基本的想法,但它是冰山的可见部分。在文本输入方面,你的代码包含几个错误,一些是次要的错误。

答案 1 :(得分:1)

您如何知道用户何时完成?

您发布的代码将一直持续到用户按下Ctrl+d,然后将{End} of file发送到输入流。

fgets存储换行符,因此您需要检查txt是否只包含换行符。