C程式語言整理筆記(七)輸入與輸出

2021-06-09 15:37:18 字數 3671 閱讀 7202

ø

最簡單的輸入機制是使用

getchar()

從標準輸入中(鍵盤)一次讀取乙個字元:

int getchar(void)

getchar

函式在每次被呼叫時返回下乙個輸入字元。若遇到檔案尾,則返回

eof

ø在許多環境中,可使用符號

<

來實現輸入重定向,它將把鍵盤輸入替換為檔案輸入:

如果程式

prog

中使用了函式

getchar

,則命令列

prog < infile

將使得程式

prog

從輸入檔案

infile

(而不是鍵盤)中讀取字元 ø

函式int putchar(int c)

用於輸出資料

putchar(c)

將字元c

送至標準輸出上,在預設情況下,標準輸出為螢幕顯示 函式

putchar

將返回輸出的字元,如果發生錯誤,則返回

eof

ø通常情況下,可以使用

」>

輸出檔名

」的格式將輸出重定向到某個檔案中

如果程式

prog

中使用了函式

putchar

,則命令列

prog >

輸出檔名

將把程式

prog

的輸出從標準輸出裝置重定向到檔案中 ø

如果系統支援管道,那麼命令列:

prog | anotherprog

將把程式

prog

的輸出從標準輸出通過管道重定向到

anotherprog

的標準輸入中

int printf(char *format, arg1, arg2, …)

函式printf

在輸出格式

format

的控制下,將其引數進行轉換與格式化,並在標準輸

出裝置上列印出來,它的返回值為列印的字元數 ø

格式字串包含兩種型別的物件: 1.

普通字元

在輸出時,普通字元將原樣不動地複製到輸出流中

2.轉換說明

轉換說明並不直接輸出到輸出流中,而是用於控制

printf

中引數的轉換和列印。

每個轉換說明都由乙個百分號字元

(%)開始,並以乙個轉換字元結束

在字元%和轉換字元中間可能依次包含下列組成部分: ø

負號:用於指定被轉換的引數按照左對齊的形式輸出 ø

數:用於指定最小字段寬度。轉換後的引數將列印不小於最小字段寬度的

字段。如果有必要,字段左邊(如果使用左對齊方式,則為右邊)多

餘的字元位置用空格填充以保證最小字段寬 ø

小數點:用於將字段寬度和精度分開 ø

數:用於指定精度,即指定字串中要列印的最大字元數、浮點數小數點

後的位數、整型最少輸出的數字數目 ø

字母h,l:字母h

表示將整數作為

short

型別列印 字母

l表示將整數作為

long

型別列印

函式的運算順序:從右向左計算

int a = 1;

printf (「%d, %d, %d\n」, a++, a++, a);

=> 2, 1, 3

volatile int a = 1;   //申明a

是易變的,防止編譯器優化

printf (「%d, %d, %d\n」, a++, a++, a);

=>2, 1, 1 ø

向乙個指定的流輸出

int fprintf (file *stream, const char *format, arg1, arg2, …)

返回值是實際寫入的字元數,若出錯則返回乙個負值

printf (…)

函式等價於

fprintf (stdout, …)

ø向乙個指定的緩衝區輸出

int sprintf (char *s, char *format, arg1, arg2, …)

函式的輸出被寫入到字串

s中,並以

』\0』

結束。s

必須足夠大,以足夠容納下輸

出的結果。該函式返回實際輸出的字元數,不包括

』\0』

int scanf (const char *format, …)

scanf

函式從標準輸入中讀取字串行,按照

format

中的格式說明對字串行進行解

釋,並把結果儲存到其餘的引數中 ø

當scanf

函式掃瞄完其格式串,或者碰到某些輸入無法與格式控制說明匹配的情況時,該函式將終止,同時,成功匹配並賦值的輸入項的個數將作為函式值返回,所以,該函式的返回值可以用來確定已匹配的輸入項的的個數。如果到達檔案的結尾,該函式將返回

eof ø返回

eof與

0是不同的,

0表示下乙個輸入字元與格式串中的第乙個格式說明不匹配。 ø

下一次呼叫

scanf

øint fscanf (file *stream, const char *format, …)

fscanf

函式根據格式串

format

從流stream

中讀取輸入,並把轉換後的值賦給後續各個引數,其中的每個引數都必須是乙個指標。當格式串

format

用完時,函式返回。如果到達檔案的末尾或在轉換輸入前出錯,該函式返回

eof;否則,返回實際被轉換並賦值的輸入項的數目

scanf(…)

函式與fscanf(stdin, …)

相同øint sscanf(char *string, char *format, arg1, arg2, …)

用於從乙個字串(而不是標準輸入)中讀取字串行

它按照格式引數

format

中規定的格式掃瞄字串

string

,並把結果分別儲存到

arg1, arg2, …

這些引數中。這些引數必須是指標

scanf, fscanf, sscanf

函式的所有引數都必須是指標

scanf(「%d」, n);      錯誤

scanf(「%d」, &n);    正確

編譯器在編譯時一般檢測不到這類錯誤

C語言 輸入與輸出

標頭檔案包含 include 空指標也在這個標頭檔案中,int p null 讀取輸入的函式scanf 列印輸出的函式printf int scanf const char format,函式從標準輸入流 stdin 讀取輸入,並根據提供的 format 來瀏覽輸入。int printf const...

輸入與輸出points c語言筆記

輸入與輸出問題 c語言筆記 一 字元的輸入與輸出 1.putchar 1 原型 int putchar int c 第乙個int 表示函式的返回值,也就是說,函式如果正確執行,則返回輸出字元的字元碼 否則,則輸出eof。第二個int 表示函式需要乙個int型別的引數,該引數即為函式輸出字元的asci...

輸入與輸出 重學C之七

之前有寫過一篇部落格用來介紹c語言的i o庫函式,i o就是所謂的輸入與輸出,所以這篇部落格和之前的多少有一些重複的部分。輸入 輸出功能並不是c語言本身的組成部分。ansi標準精確的定義了這些函式,所以,在任何可以使用c語言的系統中都有這些函式的相容形式。在程式中使用標準庫提供的功能,程式可以不經修...