2011-07-22 81 views
0

基本上,我試圖實現以下一個C程序:`回聲 「ASDF」`使用管道

echo "asdf" | ./a.out

其中./a.out簡單地打印出 「ASDF」

我知道這可能是noob C的東西,但由於我只是一個新手C程序員,我以爲我會問社區。


更新:

OK,我知道了:

#include <stdio.h> 
#include <string.h> 

int main(void) 
{ 
    char str[80]; 
    int i; 

    printf("Enter a string: "); 
    fgets(str, 10, stdin); 

    /* remove newline, if present */ 
    i = strlen(str)-1; 
    if(str[ i ] == '\n') 
     str[i] = '\0'; 

    printf("This is your string: %s", str); 

    return 0; 
} 

echo "asdf" | ./a.out做什麼,我需要的。

+0

所以你想讓你的程序接受asdf輸入並打印出來?貓是用於連接文件。 – 2011-07-22 13:14:33

+2

你的意思是'echo'而不是'cat'? –

+2

打開'stdin'進行閱讀。 –

回答

2

它正在通過stdin

$ cat stdin.c 
#include <stdio.h> 
int main() { 
    int c; 
    while (EOF != (c = fgetc (stdin))) 
     putc (c, stdout); 
} 
$ gcc stdin.c 
$ echo "foo" | ./a.out 
foo 
$ 
0

從標準輸入文件stdin剛看了閱讀內容的管道。