【问题标题】:Reading from stdin into a FILE*从标准输入读取到 FILE*
【发布时间】:2018-10-10 08:35:53
【问题描述】:

我有一个需要 FILE* 的函数,我通常通过从文件中读取来创建它。现在在某些情况下我想从标准输入读取。有没有办法从标准输入读取一个以前未指定长度的句子并将其写入 FILE* ?

【问题讨论】:

    标签: c file io stdin


    【解决方案1】:

    stdinstdoutstderr 已经属于 FILE * 类型。因此,您可以像使用任何其他 FILE * 变量一样使用它。

    【讨论】:

      【解决方案2】:

      是的,只需根据需要使用fpstdin

      void copyline(FILE *fp) {
          int ch;
          while ((ch = fgetc(stdin) != EOF) && (ch != '\n')) {
              fputc(ch, fp);
          }
          if (ch != EOF) fputc('\n', fp);
      }
      

      【讨论】:

        【解决方案3】:

        您可以在行缓冲终端上使用getchar() 并像这样读取它:

         int i;
         while((i=getchar())!=EOF)
        

        然后用它把它写入一个文件。

        【讨论】:

          猜你喜欢
          • 2013-03-30
          • 2012-02-17
          • 1970-01-01
          • 1970-01-01
          • 2015-07-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-05-28
          相关资源
          最近更新 更多