我需要将多行用户定义文本写入linux中的文件。
我上面有这个代码,但是当我按下返回(输入)时我的写作会话结束但我不想让它以输入结束当我按下回车我希望我的程序转到下一行所以我就能写多行文本到该文件中。
最后,我希望我的程序停止编写会话,当我向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;
}
答案 0 :(得分:1)
@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);
}