C 格式化輸入輸出

2021-06-17 22:36:09 字數 3155 閱讀 2031

cin與cout 

一:標準輸入函式cin 

不知道說它是個函式對還是不對,它是代表標準的輸入裝置--鍵盤。他是屬於流的,他的用法和流的用法是一樣的。也就是:cin>>變數;

小小的說明一下,輸入多個變數可以寫在一行,如:cin>>x>>y>>z;

這樣寫不是不允許,而是不好看,如果是不同的變數型別,那就更是沒頭沒腦了。除了你,人家是不知道該輸入什麼的,所以,一般在輸入語句的前面,我們一般都要做乙個提示,請輸入×××,讓人家心裡有個底,知道這個變數是做什麼的。 如:

#includeusing namespace std;

int main()

{ int i;

cout<

cin>>i;

cout<

如果你輸入的是乙個字元如'a'那麼他也不檢查,但你輸出的結果不是正確的,這要手工進行檢查。如果在迴圈內部輸入不合法的變數值,那麼也將陷入死迴圈。如下:

/*乙個輸入不合法變數陷入死迴圈的例子*/ 

#include using namespace std;

int main()

{ int i = 0;

while(i!=-1)

{ cout<

cin>>i; /*請輸入不是乙個字元如'a'試試*/

cout<< "i=" << i <

如上乙個程式,如果你輸入的不合法,那就將陷入死迴圈。解決的辦法有個一,把cin>>i;語句移到判斷迴圈的語句中,那麼,你輸入的如果是不合法的變數,他將跳出迴圈。

cin是用空格來分隔輸入的。請看看如下的例子:

/*乙個空格分隔使輸入的變數達不到希望的值*/ 

#include using namespace std;

int main()

{ char str[20];

cout<

cin>>str; /*你試著輸入"hello word"*/

cout<

看得到是什麼結果呢?得到的僅僅是str=hello,為什麼呢?因為cin是以空格為分隔的,當你輸入乙個空格時,那他就認為後面的輸入不屬於這裡了,

認為應該給後面的變數了。另外,當你輸入的字串大於分配的空間時,還會出現溢位現象。當然,還有整行輸入的函式,包括空格也一起輸入了,以後也會學到。

二、標準輸出函式cout 

說cout是函式,也跟cin一樣,不知道對不對。他代表的是標準輸出裝置--顯示器。其實前面已經用過很多次這個函式了。我們就通過乙個例子來進行格式化的輸出就是了. 

首先,我們可以按16進製制,8進製和10進製來顯示我們的資料,如下:

/*乙個按進製輸出的例子*/ 

比如要輸出以下的結果:

「第一章 

1.1   什麼是c語言...........................1 

1.11 c語言的歷史..........................58 

第二章」

/*關於浮點數的格式*/ 

在c/c++系統中除了標準的輸入輸出外,還提供了更多的輸入函式。這寫函式主要有getch(),getche(), 

getchar(),cin.get(),putch(),putchar(),cout.put(),gets(),cin.getline(),puts()。另外

還有些為了讓緩衝區不影響程式的正確操作的緩衝去的操作,如:cin.putback(),fflush(stdin),cout.flush().我們

做一下簡單的說明。 

1、getch()和getche(),非緩衝式輸入,從鍵盤讀入乙個字元。getch()讀入字元不顯示。有conio.h支援。 

2、cin.get(),getchar(),緩衝式輸入,從鍵盤讀入乙個字元,並顯示。getchar()由stdio.h支援,cin.get()由iostream.h支援。 

3、putch()和putchar(),非緩衝式輸出,輸出乙個字元到顯示器。putch()由conio.h支援,putchar()由stdio.h支援。 

4、cout.put(),緩衝式輸出,輸出乙個字元到顯示器。由iostream.h支援。 

5、gets()和cin.geline(),緩衝式輸入,讀入一字串(包括空格,不包括最後的回車),gets()由stdio.h支援,cin.getline()由iostream.h支援。 

6、puts(),非緩衝輸出,輸出乙個字串,由stdio.h支援。 

7、cin.putback(),把乙個字元送回輸入緩衝區。 

8、fflush(stdin),清除輸入緩衝區操作。無法清除cin.get()等帶來的操作。 

9、cout.flush(),清楚輸出緩衝區。 

在這裡我們稍微說一下輸入/輸出緩衝區,這是為了減少程式訪問io帶來中斷而設的一段空間。當程式滿足某個重新整理條件時,那就將清理緩衝區。具體條件為: 

1、輸入緩衝區 

a,程式要求輸入時,按下了回車鍵。 

b,遇到程式結束。 

c,遇到下一條輸入語句。 

d,遇到清除緩衝區操作 

e,緩衝區溢位 

2、輸出緩衝區 

a,輸出緩衝區溢位 

b,遇到下一條輸入語句 

c,使用重新整理緩衝區迫使清除 

d,程式結束。 

C 格式化輸入輸出

c 共有15個 輸入輸出 格式標記位,這15個標記位均為bit位,每個標記位都有自己的含義,且可以單獨設定。格式標記位的取值為0或1 0表示關閉 不使用此格式 1表示開啟 使用此格式 標記位含義 boolalpha 如開啟,則輸入和輸出使用bool值 即ture或false showbase 如開啟...

格式化輸入 輸出

scanf 函式和 printf 函式是c語言程式設計中使用最頻繁的兩個函式,他們用來格式化輸入和輸出。printf 函式 printf 格式串,表示式1,表示式2 格式串包含普通字元和轉換說明 轉換說明以 字元開頭 轉換說明可以用 m.px格式或 m.px格式 m和p都是整數常量,而x是字母。m和...

格式化輸入輸出

格式化輸入輸出 1.printf flags width prec hil type scanf flag type flag 標誌 含義 左對齊 在前面放 或 space 正數留空 0 0填充 int main width或prec 含義 number 最小字元數 下乙個引數是字元數 number...