今天介紹的是最重要的一個功能。標準I/O(輸入/輸出)包含了如下一些函數:scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf
等。我們今天著重介紹一些常用的。
之前大家普遍反映知識點過于基礎,今天我們調整一下方法,從簡單代碼入手,幫助大家在練習中學習。
1. printf() 和 scanf()
- printf(): 將指定的文字/字符串輸出到標準輸出設備(屏幕)。
- scanf(): 從標準輸入設備(鍵盤)讀取數據,并將值存放在變量中。
請看如下代碼:
#include <stdio.h>
int main()
{
int a, b, c;
scanf("%d%d", &a, &b); // 從鍵盤輸入兩個整數
printf("a = %d b = %d \n", a, b); // 將兩個整數輸出到屏幕
scanf("%d", &c);
printf("c = %d \n", c);
return 0;
}
運行結果如下:
由上面兩幅圖可以看出,同樣的代碼,不同的輸入方式打印出的格式不同。
這兩個函數涉及的零散知識較多,只需了解,不要求死記硬背。用到的時候能夠通過查找教材或百度找到方法即可。在這里不做具體介紹,請自行學習教材。如有問題歡迎郵件探討。
2. getchar()與putchar()
- getchar(): 將用戶輸入的字符輸出到標準輸出設備(屏幕)。按【Enter】鍵后,getchar()函數才會讀入第一個字符,并返回該字符常量。
注:由于緩沖區的讀取特性,當用戶由鍵盤鍵入字符時,計算機并不會馬上處理,而會暫存到系統的緩沖區(Buffter)內。到按【Enter】鍵后,getchar()函數才會讀入緩沖區的第一個字符。而其它字符繼續保留在緩沖區,等待下一個讀取字符/字符串的函數來讀入。
- putchar(): 用來輸出指定的單一字符。
請看下面這段代碼:
#include <stdio.h>
int main()
{
char c, s[20];
printf("Enter a string: ");
c = getchar();
printf("Read the remaining from the buffer\n");
scanf("%s", s);
putchar(c);
putchar('\n');
printf("%s \n", s);
return 0;
}
運行結果:
3. getche()與getch()
getche(): 該函數會由鍵盤輸入一個字符,返回給調用者,并在屏幕上顯示讀入的字符。由于它并不讀取緩沖區的字符,只要用戶輸入字符,getche()函數會立刻讀取,而不需等待按【Enter】鍵。通常用于程序中只需用戶輸入一個字符,即可往下繼續執行的情形。
getch(): 它與getche()的區別是,getch()不需將所輸入的字符顯示到屏幕上。
請看下面代碼:
#include <stdio.h>
int main()
{
char c1, c2;
printf("Press any key to exit");
c1 = getche();
putchar('\n');
printf("Press any key once more to exit");
c2 = getch();
putchar('\n');
printf("The character getche() read: %c \n", c1);
printf("The character getch() read: %c \n", c2);
return 0;
}
執行結果:
4. gets()與puts()
- gets()
scanf輸入字符串可以配合%s格式,但缺點是當遇到字符串中有空白或tab字符時,會自動視為串輸入結束。因此不適合輸入包含空白/tab字符的字符串。這時gets()函數就可解決該問題。
gets()函數會將用戶整段字符串響應到標準輸出設備(屏幕)上,當用戶按下【Enter】鍵時,會讀取緩沖區的所有字符并存放到指定字符數組中。
比較適合應用在多字符,中文字或長字符串的讀取。
- puts()
用來輸出字符串,輸出完成后光標自動移到下一行。當輸出數據時,會以'\0'字符作為該字符串的結束。
請看下面代碼
#include <stdio.h>
int main()
{
char s[50];
printf("Enter a string: ");
gets(s);
printf("The string you entered: ");
puts(s);
}
運行結果:
今天就簡單說到這里。這些函數的具體使用方法我們會在后面的實例代碼分析中講解。
我是天花板,讓我們一起在軟件開發中自我迭代。
如有任何問題,歡迎與我聯系。
上一篇:C語言從零開始(七)-其他運算符
下一篇:C語言從零開始(九)-選擇結構