printf,fprintf(stdout,stderr),sprintf等的使用方法及区别
生活随笔
收集整理的這篇文章主要介紹了
printf,fprintf(stdout,stderr),sprintf等的使用方法及区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
| stdin | 標準輸入 | 鍵盤 |
| stdout | 標準輸出 | 屏幕 |
| stderr | 標準錯誤 | 屏幕 |
| stdprn | 標準打印機 | LPT1端口 |
| stdaux | 標準串行設備 | COM1端口 |
- 1,printf 就是到標準輸出(stdout),在屏幕上打印出一段字符串來。
-
2,sprintf 就是把格式化的數據寫入到某個字符串中。返回值字符串的長度。
-
3,fprintf 是用于文件操作。(在shell下stdin, stdout, 和stderr的文件描述符分別是0, 1和2,)
stdout – 標準輸出設備(printf("…")) ,遇到\n或者緩存到1024才會輸出,可以重定向,用 1> 或者直接 >。
( 因為標準輸入輸出是行緩存,使用setbuf函數設置緩存區緩存為無緩存,使用dup2重定向標準輸出為文件描述符
setvbuf(stdout, NULL, _IOLBF, 0) != 0; dup2(file_fd, STDOUT_FILENO)stderr – 標準錯誤輸出設備,沒有緩存,直接輸出,可以重定向,用 2> 。
兩者默認向屏幕輸出。
原型:int fprintf(FILE *stream,char *format,[argument]); 功能:fprintf()函數根據指定的format(格式)發送信息(參數)到由stream(流)指定的文件.因此fprintf()可以使得信息輸出到指 定的文件。例子:
char name[20] = "lucy"; FILE *out;out = fopen( "output.txt", "w" );if( out != NULL )fprintf( out, "Hello %s\n", name );返回值:若成功則返回輸出字符數,若輸出出錯則返回負值。在test.c中輸入如下的代碼
#include<stdio.h> int main() { fprintf(stderr,"stderr!\n"); fprintf(stdout,"stdout!\n"); printf("printf!\n"); return 0; }編譯: gcc test.c -o test
執行:./test
輸出:
stderr!
stdout!
printf!
若將輸入重定向到一個temp.txt文件中,運行:./test>temp.txt 結果如下:
stderr!
查看temp.txt文件內容為:
stdout!
printf!
strerr是作為程序運行過程中的錯誤顯示出來的,若想將它重寫向到某文件中,需要運行如下命令:
./test 2>temp.txt
這樣運行結果就為:
stdout!
printf!
查看temp.txt文件的內容是:
stderr!
參考鏈接
總結
以上是生活随笔為你收集整理的printf,fprintf(stdout,stderr),sprintf等的使用方法及区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gcc 编译过程
- 下一篇: c语言gets()函数与它的替代者fge