c語言中將輸入的字符直接輸出
getchar函數 和EOF
getchar函數用於讀取字符並返回,(getchar和putchar都只處理一個字符); EOF是對象式宏,為一個負值。
1、
#include <stdio.h>
int main(void) { int ch; while((ch = getchar()) != EOF) { putchar(ch); } return 0; }
以上程序為while循環控制語句,循環判斷語句是 (ch = getchar()) != EOF; 函數getchar讀取字符並返回給ch, 然后判斷ch是否等於EOF, 如果判斷結果為1,則執行循環體。
程序並不是讀取一個字符就直接輸出,而是輸入回車鍵后輸出,這是因為c語言中輸入和輸出一般會將讀入的字符和帶輸出的字符暫時保存在緩存中,輸入回車鍵后才運行實際的輸入輸出操作。
2、以上程序等價於:
#include <stdio.h> int main(void) { while(1) { int ch; ch = getchar(); if(ch == EOF) break; putchar(ch); } }
while(1)為無限循環語句,循環體中使用if語句對程序結束做出設定。