字串輸入輸出函式

2021-04-13 12:47:02 字數 1081 閱讀 1422

while(gets(name)!=null)   可檢查檔案是否結尾

while((ch=getchar())!=eof)

gets() 讀取換行符並將其丟棄, fgets() 把換行符存字串裡,但每次顯示字串會顯示換行符(不足之處)。

fgets() 是為檔案i/o而設計得,在處理鍵盤輸入時就不如gets()那麼方便。它需要第二個引數來說明最大讀入字元數,如果這個引數值為n ,fgets()就會讀取最多n-1個字元或者讀完乙個換行符為止,由這二者中最先滿足得那個來結束輸入。

fgets()還需要第三個引數來說明哪乙個檔案。從鍵盤上讀資料時,可以使用stdin 作為該引數,這個識別符號在stdio.h中定義。

char name[max]

char *ptr;

ptr=fgets(name,max,stdio);

puts()用法很簡單,只需給出字串引數的位址。puts()專門列印字串,遇到『/0』才結束,故非字串或無'/0'的最好不要列印,否則無法結束。

fputs() 是puts()的面向檔案版本, 區別是fputs()需要第二個引數說明要寫的檔案。可以使用stdout 作為引數來進行輸出顯示,在stdio.h中定義。

與puts()不同,fputs()並不為輸出自動新增換行符。

注意 :gets()丟掉輸入裡的換行符,但puts()為輸出新增換行符。fgets()儲存輸入中的換行符,而fputs()也不為輸出新增換行符。如把fgets()輸入和puts()輸出結合使用,每個字串後會顯示兩個換行符。

char line[81];

while(gets(line))

puts(line);

或者也可以這樣:

char line[81];

while(fgets(line,81,stdin))

fputs(line,stdout);

在第乙個迴圈中,line陣列中,的字串被顯示在單獨的一行上,這是由於puts()為它新增了乙個換行符。第二個迴圈,line 陣列中的字串同樣顯示在單獨的一行上,這是由於fgets()儲存了乙個換行符。puts()是為和gets()一起使用而設計的,而fputs()是為和fgets()一起使用而設計的。

字串輸入輸出函式

字串輸入首先要考慮的是儲存位置和儲存空間大小。例子 char name scanf s name 指標未初始化,可能指向記憶體中的任意地方,字串讀入的時候有可能覆蓋記憶體中的關鍵資料,造成程式或機器崩潰。char name 81 這種方式顯式宣告空間並進行初始化。scanf s str 函式讀入單個...

字串的輸入輸出函式總結

字元資料的輸入輸出 1.putchar 函式 字元輸出函式 putchar 函式是字元輸出函式,其功能是在顯示器上輸出單個字元。其一般形式為 putchar 字元變數 2.getchar函式 鍵盤輸入函式 getchar函式的功能是從鍵盤上輸入乙個字元。其一般形式為 getchar 通常把輸入的字元...

字串和輸入輸出

一.示例程式 include include define density 62.4 int main 該程式的新特性 1.使用乙個陣列來存放字串,可以存放40個位元組,每個位元組都可以存放乙個字元值。2.使用 s轉換說明符來處理字串輸入和輸出。3.使用預處理器定義 4.使用strlen 這個函式來...