2013-10-31 83 views
0

我帶命令提示符的特點正與一個簡單的程序來生成C.這裏的文本文件是程序:爲什麼這個程序不能在C中使用OS重定向命令?

#include <stdio.h> 

int main(void) 
{ 
    char buf[80]; 

    fgets(buf, 30, stdin); 
    printf("the input was %s\n", buf); 
    return 0; 
} 

我的編程書籍是想展示如何在命令提示符下,使文字玩來自程序的文件,並指示鍵入單詞「重定向」,然後鍵入'>',然後用'.txt'鍵入程序名稱。如下圖所示:

redirect> programname.txt 

現在,這是生成桌面上的文件「programname.txt」,但它是空的。本書聲稱配方應該允許我輸入一個字符串(如程序設計的那樣),並且該字符串將位於生成的programname.txt文件中。此外,命令行中還有一個警告:「未被識別爲內部或外部命令」。我以前有過這個schpill,但是文本文件生成工作,因爲它生成了.txt文件。我在這裏錯過了什麼,這個程序按預期工作?

+5

這聽起來像你沒有運行你的程序。我非常懷疑'重定向'在你的道路上。嘗試'./redirect> programname.txt'。 –

回答

0

在shell中執行輸出重定向的常用方法是使用> filename,但不是redirect,它與您說的相反。 >之前的內容是要重定向的命令。

所以,讓我們說您編譯程序,並將其保存爲foo在當前目錄(例如cc -o foo myprogram.c)。在這種情況下,可以說其輸出重定向:

./foo > filename.txt 
1

你似乎由事實混淆,這是不是你的程序,但之前甚至嘗試創建文件programname.txt來運行你的程序。

第一次成功並創建了一個空文件後,後者可能會失敗,因爲在PATH中沒有命令redirect,或者在shell中存在內置的內存,就像已經提出的那樣。

相關問題