2012-01-22 8 views
1

私は現在、学校プロジェクト用のコンソールアプリケーションを構築しています。Cの文字列にコンソールから文字列を保存する方法(Windowsプラットフォーム)

すべてのテキストをコンソールからC(Windowsプラットフォーム)の文字列に保存するにはどうすればよいですか?例えば

:私は機能system("dir")を使用した場合

、それは意志を出力コンソールおよびディレクトリ内のすべてのサブディレクトリとファイルをリストします。そして私はそれを後で使うために文字列に保存したい。

答えて

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; 
} 
+1

ありがとう!これは多くの助けになります.. – Raven

1

使用 のpopen()関数を:

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

文字列で指定されたコマンドを実行しなければならにpopen()関数コマンド。それは呼び出し元のプログラムと実行されたコマンドの間にパイプを作成し、パイプの読み書きに使用できるストリームへのポインタを返さなければならない。

の#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でも動作するかもしれないと思います。

+2

ああ。同じことに答えるつもりだった。 –

+0

私とJohnsywebはほぼ同じ時に同じ答えを投稿しました... !! –

関連する問題