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

时间:2013-11-25 19:26:48

标签: c linux

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

1 个答案:

答案 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);
}