C - 终端写入和输出到文本文件

时间:2017-02-18 01:53:41

标签: c file-io stdout fopen freopen

我是一名学生,参加C语言入门课程并开始我们的第一个C期中考试。我们的测试环境会将我们的操作和printf输出存储到文本文件中。但是,我们的TA建议我们自己使用 fprintf 写一个文件。

有没有一种非常简单的方法可以将我的终端/控制台输出和输入(我在 scanf 之后输入的内容)复制到output.txt等文本文件中?

我试过

  

freopen函数(" output.txt的"" W",标准输出);

但是我不会将scanf输入写入文本文件。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

不要使用scanf(); 使用fgets(); 一个例子:

#include <stdio.h>
#include <stdlib.h>

#define Contents_Size 1000

int main()
{
 char contents[Contents_Size];

 //Opening the file
 FILE * fp;
 fp = fopen("\myfile.txt", "w"); //"w" = write

 //If there is an error
 if(fp == NULL)
{
    //Exit
    printf("Error!\n");
    exit(EXIT_FAILURE);
}

//This part require your input
printf("Enter the contents of file: \n");
fgets(contents, Contents_Size, stdin);


//Write your input in file
fputs(contents, fp);

//Close the file
fclose(fp);

return 0;

}

fgest()将在输入内容中复制您的输入内容,而fputs()将在内容中粘贴每个内容字符[]。