2014-06-17 46 views
-2

這些功能的實際用途是什麼?我的意思是,如果我們使用while循環和EOF,我們只要輸入"hello"即可得到輸出結果,如"hello"。那麼有什麼意義呢?getchar和putchar的實際用途是什麼?

+0

也許你想存儲你從getchar()得到的輸入,並在你使用putchar()輸出之前處理數據。 – nos

回答

0

使用getcharputchar對於字符I/O更簡單,因爲它們不需要格式字符串,如scanfprintf

此外,scanf將數據項存儲在其地址由其參數給出的對象中,而getchar將讀取的字符的值作爲其值返回。 scanfgetchar均返回EOF作爲它們的值,表示已達到文件結束,讀取了無效字符或發出其他一些故障狀態的信號。

因此,getcharputchar允許您編寫可靠的代碼而不處理輸入或輸入的格式。

+0

文件結束是一種條件,而不是標記。 'getchar()'返回'EOF'來表示失敗。您可以使用'ferror()'和/或'feof()'來測試失敗的原因。 – pmg

+0

@pmg EOF用作幾個函數返回的值,表示已到達文件結尾,一個無效字符已被讀取或發出一些其他故障狀況的信號。 EOF是一個指示幾個故障的宏,因此是某種意義上的標記。但是,我一般在我的回答中提到了EOF。我不明白你是如何理解你的理解。當然,這不是一個downvote的理由,你不覺得嗎? –

+0

我想這是一個迂腐的問題:函數返回'EOF'時,他們**無法讀取數據**(由於幾個原因之一),而不是當他們讀的東西。 – pmg

-1

int getchar() =從標準輸入(標準輸入)返回下一個字符。

基本上一次讀取一個字符。

putchar(int) =將字符寫入標準輸出(stdout)。

它允許您在不知道確切數據類型的情況下處理任何類型的輸入/輸出。它爲IO操作提供了更多的控制和靈活性。它比scanf/pritnf還快,因此您可以在需要大量IO操作的在線編程競賽中使用它。

相關問題