一、putchar和getchar
這兩個函數是對單個字符進行處理,putchar是在標準輸出設備上顯示一個字符,而getchar是在標準輸入設備上取得一個字符,我們來看一看下面的例子,從鍵盤輸入字符,並在顯示器上顯示出來,當遇到字母x時,程序退出:
#include <stdio.h>
main()
{
char ch = 0;
while (ch != ‘x’)
{
ch = getchar();
putchar(ch);
}
}
a
a
b
b
x
x
二、puts和gets
這是針對字符串處理的兩個函數,puts是在標準輸出設備上顯示一個字符串,而gets是從標準輸入設備取得一個字符串。我們來看一下它們的使用方法:
#include <stdio.h>
main()
{
char str[20];
gets(str);
puts(str);
}
Hello World!
Hello World!
注意,這裏定義的是char str[20]也就是定義了一個具有20個元素的字符數組,不能定義成char *str;然後想通過gets(str);從鍵盤輸入字符串到str中去。這裏涉及到數組與指針的關係,我們會專門有一章來講數組和指針的原理。
三、printf和scanf
其中printf爲按格式輸入函數,它格式定義以%開頭,後面字母代表的意義如下:
d 以十進制形式輸出帶符號整數(正數不輸出符號)
o 以八進制形式輸出無符號整數(不輸出前綴 0)
x,X 以十六進制形式輸出無符號整數(不輸出前綴 Ox)
u 以十進制形式輸出無符號整數
f 以小數形式輸出單、雙精度實數
e,E 以指數形式輸出單、雙精度實數
g,G 以%f 或%e 中較短的輸出寬度輸出單、雙精度實數
c 輸出單個字符
s 輸出字符串
- 結果左對齊,右邊填空格
- 輸出符號(正號或負號)
輸出值爲正時冠以空格,爲負時冠以負號
關於scanf則是與printf相對,它是功能是按格式輸入,例如:
#include <stdio.h>
main()
{
char ch;
int a,b;
float c,d;
char str[20];
scanf("%c,%d,%d,%f,%f,%s", &ch, &a, &b, &c, &d, str);
printf("%c,%d,%d,%f,%f,%s\n", ch, a, b, c, d, str);
}
a,1,2,3.3,4.4,Hello
a,1,2,3.300000,4.400000,Hello
關於scanf也有一個地方需要讀者注意,在調用scanf函數時我們向其傳入的參數變量前要加入一個&符號,用於表示這個變量的內存地址,而數組型變量除外。