六、c/c++輸出
標準檔案
c 語言把所有的裝置都當作檔案。所以裝置(比如顯示器)被處理的方式與檔案相同。以下三個檔案會在程式執行時自動開啟,以便訪問鍵盤和螢幕。
標準檔案 檔案指標 裝置
標準輸入 stdin 鍵盤
標準輸出 stdout 螢幕
標準錯誤 stderr 您的螢幕
1.printf() 和 scanf() 函式
c 語言中的 i/o (輸入/輸出) 通常使用 printf() 和 scanf() 兩個函式。scanf() 函式用於從標準輸入(鍵盤)讀取並格式化, printf() 函式傳送格式化輸出到標準輸出(螢幕)。
scanf_s
(「%d」,
&a);
//輸入
printf
(「%d」,a)
;//輸出
scanf() 期待輸入的格式與給出的 %s 和 %d 相同,這意味著必須提供有效的輸入,比如 「string integer」,如果提供的是 「string string」 或 「integer integer」,它會被認為是錯誤的輸入。另外,在讀取字串時,只要遇到乙個空格,scanf() 就會停止讀取,所以 「this is test」 對 scanf() 來說是三個字串。
\用法:
在c語言中,字串行\n表示換行符,在列印中遇到它時,輸出列印將換行,從下一行的左端行首開始。如果去掉字串中的\n(這是個值得一做的練習),即使輸出列印完成後也不會換行。在printf函式的引數中,只能用\n表示換行符。如果用程式的換行代替,例如:
printf
("hello, word
");
c編譯器將會產生一條錯誤資訊。
printf函式永遠不會自動換行,這樣我們可以多次呼叫該函式以分階段得到乙個長的輸出行。上面給出的第乙個程式也可以改寫成下列形式:
#include
intmain()
這段程式與前面的程式的輸出相同。
%用法:
(1)%d 十進位制有符號整數,%f 浮點數,%s 字串,%c 單個字元,%p 指標的值,%e 指數形式的浮點數,%x無符號以十六進製制表示的整數,%o 無符號以八進位制表示的整數,%p 輸出位址符
(2)可以在「%」和字母之間插進數字表示最大場寬。例如:%3d表示輸出3位整型數,不夠3位右對齊。%9.2f表示輸出場寬為9的浮點數,其中小數字為2,整數字為6,小數點佔一位,不夠9位右對齊。%8s表示輸出8個字元的字串,不夠8個字元右對齊。如果字串的長度、或整型數字數超過說明的場寬,將按其實際長度輸出。但對浮點數,若整數部分位數超過了說明的整數字寬度,將按實際整數字輸出;若小數部分位數超過了說明的小數字寬度,則按說明的寬度以四捨五入輸出。
stdio.h 是乙個標頭檔案 (標準輸入輸出標頭檔案),#include 是乙個預處理命令,用來引入標頭檔案。 當編譯器遇到 printf() 函式時,如果沒有找到 stdio.h 標頭檔案,會發生編譯錯誤。
2.getchar() & putchar() 函式
int getchar(void) 函式從螢幕讀取下乙個可用的字元,並把它返回為乙個整數。這個函式在同乙個時間內只會讀取乙個單一的字元。您可以在迴圈內使用這個方法,以便從螢幕上讀取多個字元。
int putchar(int c) 函式把字元輸出到螢幕上,並返回相同的字元。這個函式在同乙個時間內只會輸出乙個單一的字元。您可以在迴圈內使用這個方法,以便在螢幕上輸出多個字元。
#include
intmain()
輸入乙個文字並按下回車鍵時,程式會繼續並只會讀取乙個單一的字元(第一字元)。
3.gets() & puts() 函式
char *gets(char *s) 函式從 stdin 讀取一行到 s 所指向的緩衝區,直到乙個終止符或 eof。
int puts(const char *s) 函式把字串 s 和乙個尾隨的換行符寫入到 stdout。
#include
intmain()
輸入乙個文字並按下回車鍵時,程式會繼續並讀取一整行直到該行結束。
c++ 的 i/o 發生在流中,流是位元組序列。如果位元組流是從裝置(如鍵盤、磁碟驅動器、網路連線等)流向記憶體,這叫做輸入操作。如果位元組流是從記憶體流向裝置(如顯示屏、印表機、磁碟驅動器、網路連線等),這叫做輸出操作。
i/o 庫標頭檔案(重要標頭檔案)
標頭檔案 函式和描述
該檔案定義了 cin、cout、cerr 和 clog 物件,分別對應於標準輸入流、標準輸出流、非緩衝標準錯誤流和緩衝標準錯誤流。
該檔案通過所謂的引數化的流操縱器(比如 setw 和 setprecision),來宣告對執行標準化 i/o 有用的服務。
該檔案為使用者控制的檔案處理宣告服務。
1.標準輸入流(cin)
預定義的物件 cin 是 iostream 類的乙個例項。cin 物件附屬到標準輸入裝置,通常是鍵盤。cin 是與流提取運算子 >> 結合使用的。
#include
using
namespace std;
intmain()
流提取運算子 >> 在乙個語句中可以多次使用,如果要求輸入多個資料,可以使用如下語句:
cin >> name >> age;
這相當於下面兩個語句:
cin >> name;
cin >> age;
2.標準輸出流(cout)
預定義的物件 cout 是 iostream 類的乙個例項。cout 物件"連線"到標準輸出裝置,通常是顯示屏。cout 是與流插入運算子 << 結合使用的
c++ 編譯器根據要輸出變數的資料型別,選擇合適的流插入運算子來顯示值。<< 運算子被過載來輸出內建型別(整型、浮點型、double 型、字串和指標)的資料項。
流插入運算子 << 在乙個語句中可以多次使用,如上面例項中所示,endl 用於在行末新增乙個換行符。
3.標準錯誤流(cerr)
4.標準日誌流(clog)
使用 cerr 流來顯示錯誤訊息,而其他的日誌訊息則使用 clog 流來輸出。
大學必備C語言基礎知識(一)
c語言基礎知識 簡單實用,適合上手。一 c 語言標頭檔案 1.include iostream 的意思是輸入輸出流。include是標準的c 標頭檔案,任何符合標準的c 開發環境都有這個標頭檔案。2.include fstream是c stl中對檔案操作的合集,包含了常用的所有檔案操作。最常用的兩種...
大學必備C語言基礎知識(四)
七 c c 運算子 運算子不僅具有不同的優先順序,還有不同的結合性。在表示式中,各運算量參與運算的先後順序不僅要遵守運算子優先順序別的規定,還要受運算子結合性的制約,以便確定是自左向右進行運算還是自右向左進行運算。1 運算子分類 運算子 說明 算術運算子 用於各類數值運算。包括加 減 乘 除 求餘 ...
大學必備C語言基礎知識(五)
八 c c 基礎語句 程式的基本控制結構 順序結構 常用的語句有表示式語句和復合語句。選擇結構 if語句 if else語句 switch語句。迴圈結構 while語句 do while語句 for語句。其它 空語句 continue語句 break語句 goto語句 return語句。1 順序結構...