我想从键盘输入文本并将输入保存到文件中。
这是我尝试过的代码:
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循环后的消息。
答案 0 :(得分:1)
简短回答:只包含Ctrl + D字符(* n * x)或Ctrl + Z字符(Windows)(我认为)的行应该结束输入并使feof(stdin)返回非零值。
答案很长:这是基本的想法,但它是冰山的可见部分。在文本输入方面,你的代码包含几个错误,一些是次要的错误。
答案 1 :(得分:1)
您如何知道用户何时完成?
您发布的代码将一直持续到用户按下Ctrl+d
,然后将{End} of file发送到输入流。
fgets
存储换行符,因此您需要检查txt
是否只包含换行符。