常用輸入輸出函式
micryfotctf發表於2024-10-13
常用輸入輸出函式
printf()
:把輸出傳送到一個叫作緩衝區(buffer)的中間儲存區域。
- 當緩衝區滿、遇到換行字元或需要輸入的時候迫使
printf()
的輸出被髮送到螢幕上。
- 可以使用
fflush()
函式重新整理緩衝區
printf()
的返回值是待顯示字元的個數
printf()
中如果你不想預先指定欄位寬度,希望透過程式來指定,那麼可以用*修飾符代替欄位寬度。但還是要用一個引數告訴函式,欄位寬度應該是多少。也就是說,如果轉換說明是%*d
,那麼引數列表中應包含*和 d對應的值。這個技巧也可用於浮點值指定精度和欄位寬度。(%*.*f
)
scanf()
:scanf()函式每次讀取都會跳過所有的空白字元,直至遇到第1個非空白字元才開始讀取。
- 讀取整數(%d):
scanf()
希望發現一個數字字元或者一個符號(+或-)。如果遇到一個非數字字元,它便認為讀到了整數的末尾。scanf()
把非數字字元放回輸入。意味著程式在下一次讀取輸入時,首先讀到的是上一次讀取丟棄的非數字字元。
- 讀取字元(%c):讀取單個字元
- 讀取字串(%s):
scanf()
會讀取除空白以外的所有字元。意味著只能讀取一個單詞。
- 無法利用欄位寬度讓只有一個%s的
scanf()
讀取多個單詞。如果使用欄位寬度,scanf()
在欄位末尾或第1個空白字元處停止讀取。
- 格式字串中的普通字元:
scanf()
允許把普通字元放在格式字串中。但除空格字元外的普通字元必須與輸入字串嚴格匹配。
- 假設在兩個轉換說明中加一個逗號:
scanf("%d,%d", &n, &m);``scanf()
函式將其解釋成:使用者將輸入一個數字、一個逗號,然後再輸入一個數字。也就是說,使用者必須像下面這樣進行輸入兩個整數:
- 由於格式字串中,%d後面緊跟逗號,所以必須在輸入第一個數後再輸入一個逗號。
- 對於
scanf()
,一定要記得在變數名前加上地址運算子。
scanf()
的返回值=scanf()
成功讀取的項數。如果沒有讀取任何項,或者需要讀取一個數字而使用者卻輸入一個非數值字串,即型別不匹配,scanf()
便返回0。
- 當
scanf()
檢測到“檔案結尾”時,會返回EOF
(EOF是stdio.h中定義的特殊值,通常用#define
指令把EOF定義為-1
)。
scanf()
中如果把*放在%和轉換字元之間時,會使得scanf()
跳過相應的輸出項。
- 示例:
scanf("%*d %*d %d", &n);
其中的scanf()
指示:跳過兩個整數,把第3個整數複製給n。
- 在程式需要讀取檔案中特定列的內容時,這項跳過功能很有用。
scanf()
函式檢測到檔案結尾時返回EOF。
getchar()
:讀取下一個輸入字元
- 使用int陣列時
getchar
只能賦值數字,無法賦值其他字元容易出錯。
- getchar()和 putchar()不需要轉換說明,因為它們只處理字元。
- 在C語言中,用
getchar()
讀取檔案檢測到檔案結尾時將返回EOF
。
- 把
getchar()
的返回值和EOF
作比較。如果兩值不同,就說明沒有到達檔案結尾。
- 檢測檔案結尾:
while ((ch = getchar()) != EOF)
- 不能把
getchar()
和 scanf()
這兩個函式混用
getchar()
讀取每個字元,包括空格、製表符和換行符;
scanf()
在讀取數字時則會跳過空格、製表符和換行符
以 int 型別讀取字元(這樣做可以檢測 EOF)
putchar()
:列印一個字元
相關文章
- 輸出輸入函式彙總
2021-10-22
函式 - ncurses輸出函式:字元+字串的輸出
2018-06-20
函式字元字串 - ncurses輸入函式:字元+字串的輸入
2018-06-20
函式字元字串 - 新手學python之Python的輸入輸出函式
2021-09-11
Python函式 - C中的基本輸入輸出函式(Android之JNI)
2014-02-13
函式Android - 關於友元函式過載輸入輸出運算子
2012-12-18
函式 - 輸入輸出
2024-06-03
- C++逐字輸出函式
2020-10-03
C++函式 - C語言——常用標準輸入輸出函式 scanf(), printf(), gets(), puts(), getchar(), putchar(); 字串拷貝函式 strcpy(), strncpy(), strchr(), strstr()函式用法特點
2019-02-21
C語言函式字串 - C++輸入輸出常用格式(cin,cout,stringstream)
2018-07-28
C++ - 輸入輸出流
2024-10-19
- 要點3:輸入函式對比與自定義輸入方式
2020-08-18
函式 - excel除法公式怎麼輸入 excel除法函式怎麼輸入
2022-04-01
Excel公式函式 - 【C++】輸入輸出
2022-02-03
C++ - Java 輸入輸出流
2018-12-23
Java - 輸入輸出系統
2020-12-22
- JAVA輸入輸出流
2015-08-04
Java - 一、輸入一個數(這裡用函式實現) 1.輸出它是幾位數 2.逆序輸出 3.正序輸出
2020-12-10
函式 - 演算法競賽中的常用輸入輸出總結
2019-01-24
演算法 - linux中的輸入與輸出管理(重定向輸入,輸出,管道符)
2020-10-05
Linux - C++中的檔案輸入/輸出(3):掌握輸入/輸出流 (轉)
2007-11-13
C++ - C#中的輸入框函式
2009-04-02
C#函式 - C語言printf()函式:格式化輸出函式
2016-04-05
C語言函式 - Excel函式應用教程:函式的輸入方法(轉)
2007-08-13
Excel函式 - 資料的輸入輸出
2019-01-20
- Java —— 標準輸入輸出
2018-10-28
Java - 排序,檔案輸入輸出
2020-12-11
排序 - 03 資料輸入-輸出
2020-11-04
- Python 輸入和輸出
2017-11-02
Python - Python的輸入輸出
2016-04-23
Python - 檔案操作-輸入輸出
2015-03-22
- C語言輸入輸出
2024-04-29
C語言 - Java基礎輸入輸出
2024-03-11
Java - C語言之輸入輸出
2024-10-24
C語言 - c++入門:輸入輸出流
2016-12-26
C++ - 標準輸入輸出服從規則和fileno,freopen,fdopen,ftell,fseek,rewind幾個函式
2013-01-15
函式 - thinkphp 輸出變數使用函式處理
2018-10-19
PHP變數函式 - Python輸入和輸出(IO)
2019-03-03
Python