日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

fputs()函数

發布時間:2023/12/18 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 fputs()函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

fputs() 函數也是用來顯示字符串的,它的原型是:

# include <stdio.h>
int fputs(const char *s, FILE *stream);

s 代表要輸出的字符串的首地址,可以是字符數組名或字符指針變量名。

stream 表示向何種流中輸出,可以是標準輸出流 stdout,也可以是文件流。標準輸出流即屏幕輸出,printf 其實也是向標準輸出流中輸出的。

fputs() 和 puts() 有兩個小區別:

  • puts() 只能向標準輸出流輸出,而 fputs() 可以向任何流輸出。
  • 使用 puts() 時,系統會在自動在其后添加換行符;而使用 fputs() 時,系統不會自動添加換行符。

  • 那么這是不是意味著使用 fputs() 時就要在后面添加一句“printf("\n");”換行呢?看情況!如果輸入時使用的是 gets(),那么就要添加 printf 換行;但如果輸入時用的是 fgets(),則不需要。

    因為使用 gets() 時,gets() 會將回車讀取出來并丟棄,所以換行符不會像 scanf 那樣被保留在緩沖區,也不會被 gets() 存儲;而使用 fgets() 時,換行符會被 fgets() 讀出來并存儲在字符數組的最后,這樣當這個字符數組被輸出時換行符就會被輸出并自動換行。

    但是也有例外,比如使用 fgets() 時指定了讀取的長度,如只讀取 5 個字符,事實上它只能存儲 4 個字符,因為最后還要留一個空間給 '\0',而你卻從鍵盤輸入了多于 4 個字符,那么此時“敲”回車后換行符就不會被 fgets() 存儲。數據都沒有地方存放,哪有地方存放換行符呢!此時因為 fgets() 沒有存儲換行符,所以就不會換行了。

    下面寫一個程序驗證一下:

    ?
  • # include <stdio.h>
  • int main(void)
  • {
  • char str[20]; /*定義一個最大長度為19, 末尾是'\0'的字符數組來存儲字符串*/
  • printf("請輸入一個字符串:");
  • fgets(str, 19, stdin); /*從輸入流stdin中讀取19個字符到字符數組str中*/
  • fputs(str, stdout); //將字符數組的內容輸出到輸出流stdout中
  • return 0;
  • }
  • 輸出結果是:
    請輸入一個字符串:i love you
    i love you
    Press any key to continue

    我們看到讀取 19 個字符足夠存儲“i love you”,所以 fgets() 最后會存儲換行符。這樣 fputs() 輸出時這個換行符就能換行了。

    下面再將讀取的字符改小一點看看:

    ?
  • # include <stdio.h>
  • int main(void)
  • {
  • char str[20]; /*定義一個最大長度為19, 末尾是'\0'的字符數組來存儲字符串*/
  • printf("請輸入一個字符串:");
  • fgets(str, 5, stdin); //從輸入流stdin中讀取4個字符到字符數組str中
  • fputs(str, stdout); //將字符數組的內容輸出到輸出流stdout中
  • return 0;
  • }
  • 輸出結果是:
    請輸入一個字符串:i love you
    i loPress any key to continue

    我們看到并沒有換行。

    值得說明的是,雖然 gets()、fgets()、puts()、fputs() 都是字符串處理函數,但它們都包含在 stdio.h 頭文件中,并不是包含在 string.h 頭文件中。

    STM32重定向:https://blog.csdn.net/ranhui_xia/article/details/23910391

    總結

    以上是生活随笔為你收集整理的fputs()函数的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。