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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

stderr和stdout(printf、fprintf、sprintf)(转)

發布時間:2025/3/15 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 stderr和stdout(printf、fprintf、sprintf)(转) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先區分一下:printf,sprintf,fprintf。

1,printf就是標準輸出,在屏幕上打印出一段字符串來。

2,sprintf就是把格式化的數據寫入到某個字符串中。返回值字符串的長度。

3,fprintf是用于文件操作。

??????原型:int?fprintf(FILE?*stream,char?*format,[argument]);???????

??????功能:fprintf()函數根據指定的format(格式)發送信息(參數)到由stream(流)指定的文件.因此fprintf()可以使得信息輸出到指??定的文件。

1 例子: 2 ? char name[20] = "lucy";? 3 ?? FILE *out; 4 ??? out = fopen( "output.txt", "w" ); 5 ??? if( out != NULL ) 6 ??? fprintf( out, "Hello %s\n", name ); 7 ??? 返回值:若成功則返回輸出字符數,若輸出出錯則返回負值。

?

?

stdout 與?stderr

stdout,?stdin,?stderr的中文名字分別是標準輸出,標準輸入和標準錯誤。

?

1,標準輸出和標準錯誤默認都是將信息輸出到終端上,那么他們有什么區別呢?讓我們來看個題目:

  問題:下面程序的輸出是什么?(intel筆試2011)

1 int main(){ 2 fprintf(stdout,"Hello "); 3 fprintf(stderr,"World!"); 4 return0; 5 }

  輸出是

  World!Hello

  在默認情況下,stdout是行緩沖的,他的輸出會放在一個buffer里面,只有到換行的時候,才會輸出到屏幕。而stderr是無緩沖的,會直接輸出,舉例來說就是printf(stdout,?"xxxx")?和?printf(stdout,?"xxxx\n"),前者會憋住,直到遇到新行才會一起輸出。而printf(stderr,?"xxxxx"),不管有么有\n,都輸出。

2、 ?fprintf(stderr,?"Can't?open?it!\n");?
  ?fprintf(stdout,?"Can't?open?it!\n");?
  ?printf("Can't?open?it!\n");?


  stdout?--?標準輸出設備?(printf(".."))?同?stdout。?
  stderr?--?標準錯誤輸出設備?
  兩者默認向屏幕輸出。?
  但如果用轉向標準輸出到磁盤文件,則可看出兩者區別。stdout輸出到磁盤文件,stderr只能在屏幕。?

?

?

總結

以上是生活随笔為你收集整理的stderr和stdout(printf、fprintf、sprintf)(转)的全部內容,希望文章能夠幫你解決所遇到的問題。

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