C語言 輸出

2021-08-07 09:09:02 字數 2339 閱讀 5480

用fputs()把乙個字串寫入到檔案中

int fputs (char string, file fp) ;

功能:把字串string寫入到檔案fp中

若fp為stdout,則為向螢幕輸出。

int printf ( char const format, …… ) ;

int fprintf ( file fp, char const format, …… ) ;

int sprintf ( char const string, char const *format, ……) ;

//以上函式的輸出字元規則都相同,不同的是它們寫入的流不同,乙個是向螢幕寫入、乙個向檔案流寫入、乙個向字串寫入。

printf函式允許你為欲列印的資料指定精度。對於不同型別的資料而言,精度的含義是不一樣的。

精度與整型轉換說明符%d一起使用時,表示要列印的資料的最少數字位數。如果將要列印的資料所包含的數字的位數小於指定的精度,同時精度值前面帶有乙個0或者乙個小數點,則加填充0。

精度與浮點型轉換說明符%f一起使用時,表示將要列印的最大有效數字位數。

精度與字串轉換說明符%s一起使用時,表示將要從乙個字串中列印出來的最大字元個數。(可用於控制打出的字元的個數)表示精度的方法是:在百分號和轉換說明符之間,插入乙個表示精度的整數,並在整數的前面加上乙個小數點。

域寬和精度可以放在一起使用,方法是:在百分號和轉換說明符之間,先寫上域寬,然後加上乙個小數點,後面再寫上精度。

例:

printf(「%9.3f」, 123.456789) ;

的輸出結果是123.456

還可以用變數來控制域寬和精度

(可用於關於精度的捨入)

在格式控制字串中表示域寬或精度的位置上寫上乙個星號 * ,然後程式將會計算實參列表中相對應的整型實參值,並用其替換星號。

例:

printf(「%. f」, 7, 2, 98.736) ; 將以7為域寬,2為精度,輸出右對齊的98.74

表示域寬的值可以是正數,也可以是負數(將導致輸出結果在域寬內左對齊)

printf函式還提供了一些標記來增加它的輸出格式控制功能,在格式控制字串中可以使用的標記有:

printf("%4$d %3$d %2$d %1$d", 1, 2, 3, 9); //將會列印9 3 2 1

printf 返回值是輸出的字元個數

#include

intmain

()//程式會輸出4321

在進行輸入/輸出時,程式並不是馬上從輸入/輸出裝置處理資料,而是先把資料放到快取中,當快取滿時才進行輸入/輸出操作(或是遇到重新整理操作,比如遇到換行或 fflush )。

c 實現通常允許程式設計師設定流的快取大小。

void setbuf (file steam, char buf) ;

引數 buf 必須指向乙個長度為 bufsiz (定義在 stdio.h 標頭檔案中)的緩衝區。

例:

setbuf (stdout, buf) ;

將告訴 i/o 庫寫入到 stdout 中的輸出要以 buf 作為乙個輸出緩衝,並且等到 buf 滿了或程式設計師直接呼叫 fflush() 再實際寫出。

將buf引數設定為null,可關閉緩衝。

例:下面的程式解釋了通過使用 setbuf() 來把標準輸入複製到標準輸出:

#include

intmain

()

這段程式隱藏著乙個細微的bug:

緩衝區最後一次重新整理是在主程式完成之後,庫將控制交回到作業系統之前所執行的清理的一部分。在這一時刻,緩衝區已經被釋放了!(即main函式棧清空之後)

有兩種方法可以避免這一問題:

使用靜態緩衝區,或者將其顯式地宣告為靜態

static char buf[bufsiz];

或者將整個宣告移到主函式之外。

動態地分配緩衝區並且從不釋放它

setbuf (stdout, malloc(bufsiz));

注意在後一種情況中,不必檢查malloc()的返回值,因為如果它失敗了,會返回乙個空指標。而setbuf()可以接受乙個空指標作為其第二個引數,這將使得stdout變成非緩衝的。這會執行得很慢,但它是可以執行的。

c語言輸出日曆

include void main else sum sum 365 按照capucivar的思路,接下來要計算從該年1月到使用者輸入月份的上乙個月的天數 for int j 1 j int a sum 7 計算出總天數跟7求餘,得到乙個餘數 int monthday z是使用者輸入月份的天數 sw...

C語言輸出菱形

用c語言程式實現列印出乙個菱形,觀察菱形,它的每一行前面會有空格,要列印菱形,首先要算出空格多少的規律,以及每行的數目,把菱形分為上下兩部分列印。演算法分析 上半部分 菱形的最長一行 的數目為它的行數乘2再減上1,菱形的空格數為它上半部分行數減去它的行數。下半部分 每行的 數為2 line 1 i ...

C語言輸出顏色

嵌入式終端介面輸出日誌時,為了區分輸出的有用資訊 錯誤資訊,可以給不同級別的輸出加上不同的顏色,以方便檢視。下面是顏色的定義 顏色巨集定義 define none 033 m define red 033 0 32 31m define light red 033 1 31m define gree...