fgetc、getc和getchar:從流中讀取下一個字符並返回(getchar總是從標准輸入中讀);如果流中沒有可讀的字符那麼返回EOF。
fputc( character, FILE * putc( character, FILE * putchar( character );
fputc、putc和puchar:把單個字符寫到指定的流中(putchar總是寫到標准輸出);無論何種原因,失敗時均返回EOF。
fgets從指定流中讀取字符並保存到buffer中,直到出現下列兩種情況時fgets才停止讀取:(1)讀到了換行符(newline)並將換行符存入buffer中;(2)讀取了buffer_size – 1 個字符。這兩種情況下都會在buffer最後加一個NUL字符從而構成一個字符串。(注:對於情況(1)是在換行符newline之後添加NUL字符,並不會覆蓋掉換行符。) 如果返回NULL說明讀到了文件末尾。否則返回一個指向buffer的指針。
注:NUL不在strlen計數范圍內,而換行符newline在strlen的計數范圍之內。
gets從標准輸入讀取一行(也就是說gets一直讀到換行符為止,不管buffer能不能裝得下,這也正是gets的缺陷所在,因此不推薦使用該函數),但它不把結尾的換行符newline保存到buffer中。
fputs:傳遞給fputs的buffer參數必須包含一個以NUL結尾的字符串,fputs將該字符串寫到指定的流中,字符串中有幾個換行符就寫幾個換行符,沒有就一個也不寫。
puts:把字符串寫到標准輸出,字符串中有幾個換行符就寫幾個換行符,並且在寫完後,它還會額外添加一個換行符到標准輸出。