我的任務是在c
中創建一個測試程序,該程序讀取標準輸入的內容並打印出來。C語言中的「標準輸入」是什麼意思?
但我有點懷疑:究竟是什麼standard input
?
是我在鍵盤上鍵入的嗎?這是一個我必須閱讀的文件嗎?
他們倆?
謝謝。
我的任務是在c
中創建一個測試程序,該程序讀取標準輸入的內容並打印出來。C語言中的「標準輸入」是什麼意思?
但我有點懷疑:究竟是什麼standard input
?
是我在鍵盤上鍵入的嗎?這是一個我必須閱讀的文件嗎?
他們倆?
謝謝。
它是當你在命令行
它是一個程序
定義的3個標準流之一,當你在命令行上啓動程序運行的程序是什麼,你在鍵盤上鍵入你可以在終端上鍵入一些文本,並且文本將被傳遞給程序的標準輸入流
另外兩個流是顯示在終端上的標準輸出,並且顯示錯誤的錯誤流不應該在標準輸出的消息
在大多數終端上,你可以將流重定向到和文件,像這樣:
myprog.exe < file_to_read.txt
其中file_to_read.txt將被讀取並傳遞到輸入輸入流
我想說明的是,只有當您在終端直接啓動應用程序並且不給它任何標準輸入時,它纔是您在終端上輸入的內容。一般情況下,stdin也用於數據傳輸,當一個應用程序啓動另一個應用程序並需要提供數據時。例如,CGI規範涉及通過標準輸入發送支持CGI的應用程序數據,並通過標準輸出返回,但都沒有命中終端 - 這是一個網站! – Phoshi
Unless redirected, input is expected from the keyboard which started the program.
「標準輸入」是指與文件描述符0相關的特定輸入流。它是從中流出的流scanf
,getchar
,gets
(你應該永不使用)等,全部閱讀。基本上,任何不會將FILE *
作爲參數的stdio輸入函數是從標準輸入讀取的。
這是通常綁定到您的控制檯,但可以重定向到從文件或其他設備讀取。
例如,
scanf("%d", &someVal);
相當於
fscanf(stdin, "%d", &someval);
從標準輸入(stdin
)讀兩種功能。
根據定義,這是一個文件描述符編號0。 http://en.wikipedia.org/wiki/Standard_streams –