将多行用户输入文本写入文件并使用C中的用户定义命令结束写入会话
我需要在linux中将多行用户定义的文本写入到一个文件中 我上面有这段代码,但当我按下回车键(enter)时,我的写作会话结束,但我不希望它以回车键结束,当我按下回车键时,我希望我的程序转到下一行,这样我就可以将多行文本写入该文件 最后,当我按下CNTL+D时,我希望我的程序停止编写会话。请问对此有何想法将多行用户输入文本写入文件并使用C中的用户定义命令结束写入会话,c,linux,C,Linux,我需要在linux中将多行用户定义的文本写入到一个文件中 我上面有这段代码,但当我按下回车键(enter)时,我的写作会话结束,但我不希望它以回车键结束,当我按下回车键时,我希望我的程序转到下一行,这样我就可以将多行文本写入该文件 最后,当我按下CNTL+D时,我希望我的程序停止编写会话。请问对此有何想法 #include <stdio.h> #include <stdlib.h> int main() { char c[1000]; FILE
#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;
}
#包括
#包括
int main()
{
字符c[1000];
文件*fptr;
fptr=fopen(“program.txt”,“w”);
printf(“输入句子:\n”);
获取(c);
fprintf(fptr,“%s”,c);
fclose(fptr);
返回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);
}
需要筛选出'\n'
的循环。请使用while循环。不要使用获取
使用fgets
注意,gets()
(首先不应该使用)删除换行符,但是您的fprintf()
不会再次添加换行符。filterin'\n'的含义是什么?我应该如何定义while循环?我想我需要这样定义…while(当ctnl+D时)按)这当然是一个想法,ı将如何编写代码?同样,编撰人不认可FGET。您可能想看看这个答案:类似问题的答案。