如何从控制台保存文本到C(Windows平台)中的string

我目前正在build立一个学校项目的控制台应用程序,我真的需要这个function为我的应用程序。

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

例如:

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

Solutions Collecting From Web of "如何从控制台保存文本到C(Windows平台)中的string"

你可以使用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; } 

使用popen()函数:

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

popen()函数将执行由string命令指定的命令。 它将在调用程序和执行的命令之间创建一个管道,并且应该返回一个指向可以用来读取或写入管道的流的指针。

#include …

 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。