我需要将多行用户定义的文本写入linux中的一个文件中。
我上面有这个代码,但我的写作会话在我按下回车键时结束,但我不希望它在我按下enter键时以回车结束。我希望我的程序转到下一行,这样我就可以在该文件中写入多行文本。
最后,当我推CNTL+D时,我希望我的程序停止编写会话。对此有什么想法吗?
#include <stdio.h>
#include <stdlib.h>
int main()
{
char c[1000];
FILE *fptr;
fptr=fopen("program.txt","w");
printf("Enter a sentence:n");
gets(c);
fprintf(fptr,"%s",c);
fclose(fptr);
return 0;
}
@Bugra Sezer,fgets
应该在stdio.h中。您需要对此进行一些更改,它将以空行或ctrl-d结尾。
int main(int argc, char *argv[])
{
char c[1000];
FILE *fptr;
fptr=fopen("program.txt","w");
printf("Enter a sentence:n");
while (fgets(c, 1000, stdin) != NULL)
{
if (strcmp(c, "n") == 0)
break;
fprintf(fptr,"%s",c);
printf("Enter a sentence:n");
}
fclose(fptr);
return(0);
}