将多行用户输入文本写入文件,并使用C中用户定义的命令结束写入会话



我需要将多行用户定义的文本写入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);
}

最新更新