【问题标题】:How to save text from console to a string in C (Windows platform)如何将文本从控制台保存到 C 中的字符串(Windows 平台)
【发布时间】:2012-01-22 05:15:34
【问题描述】:

我目前正在为一个学校项目构建一个控制台应用程序,我的应用程序确实需要这个功能。

如何将控制台中的所有文本保存到 C(Windows 平台)中的字符串?

例如:

如果我使用函数system("dir"),它将输出到控制台并列出目录中的所有子目录和文件。我希望它保存在一个字符串中以备后用。

【问题讨论】:

    标签: c windows console


    【解决方案1】:

    您可以使用popen() 而不是system()

    #include <stdio.h>
    #include <limits.h>
    
    int main()
    {
        FILE *fp;
        char path[PATH_MAX];
    
        fp = popen("DIR", "r");
        if (fp == NULL)
        {
            /* Handle error */
        }
    
        while (fgets(path, PATH_MAX, fp) != NULL)
        {
            printf("%s", path);
        }
    
        pclose(fp);
        return 0;
    }
    

    【讨论】:

      【解决方案2】:

      使用 popen() 函数:

      http://pubs.opengroup.org/onlinepubs/009604499/functions/popen.html

      popen() 函数应执行字符串命令指定的命令。它应在调用程序和执行的命令之间创建一个管道,并应返回一个指向可用于读取或写入管道的流的指针。

      #包括 ...

      FILE *fp;
      int status;
      char path[PATH_MAX];
      
      
      fp = popen("ls *", "r");
      if (fp == NULL)
          /* Handle error */;
      
      
      while (fgets(path, PATH_MAX, fp) != NULL
          printf("%s", path);
      

      这适用于 Linux。所以我认为它也可能适用于Windows。

      【讨论】:

      • 啊。会回答同样的问题。
      • i 和 Johnsyweb 几乎在同一时间发布了相同的答案...!!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-10
      • 2017-11-29
      • 2015-09-10
      • 1970-01-01
      • 2012-03-11
      相关资源
      最近更新 更多