就是只能從輸入設(shè)備上接受一個(gè)字符的輸入和只能向輸出設(shè)備輸出一個(gè)字符。比如,用了ch=getchar(),我輸入abc,電腦只接受了a,而不是abc,那么ch就是等于a了,然后我putchar('abc'),顯示也只能顯示一個(gè)a,無(wú)法把三個(gè)字符全部顯示出來(lái)。
創(chuàng)新互聯(lián)建站是工信部頒發(fā)資質(zhì)IDC服務(wù)器商,為用戶提供優(yōu)質(zhì)的成都棕樹(shù)機(jī)房服務(wù)
一、輸入數(shù)字可以用scanf輸入。
如果輸入的是整型數(shù)據(jù),可以用
int a;
scanf("%d",a);
實(shí)現(xiàn)把輸入的數(shù)字賦值給a的效果。
類似的,如果是float, double,short,long等類型的數(shù)據(jù),那么就要把變量定義成對(duì)應(yīng)的類型,然后使用各自的格式字符%f,%lf,%hd,%ld等進(jìn)行輸入。
二、輸入單個(gè)字符。
輸入單個(gè)字符可以用以下兩種函數(shù)。
定義char c;
1 scanf("%c", c);
這種方法和輸入數(shù)字是類似的,%c僅讀入一個(gè)字符,并賦值給c。
2 c = getchar();
getchar函數(shù)的功能就是讀入一個(gè)字符,并以返回值形式返回。
三、輸入一串字符(以空白字符分隔)。
可以用scanf的%s格式。
char str[100];//空間要定義足夠大
scanf("%s", str);//將字符串讀入并存在str中
四,讀入一行數(shù)據(jù)。
可以用gets函數(shù)。gets的功能就是讀入一整行數(shù)據(jù),以換行符為結(jié)束。
char str[100];//同樣要足夠大的空間
gets(str);
補(bǔ)充,無(wú)論哪種形式的輸入,都可以用getchar逐個(gè)輸入到字符串中,然后判斷結(jié)束符以結(jié)束輸入,再對(duì)字符串做處理。這種方法對(duì)編程水平要求比前幾種略高,代碼量也更大,但好處是完全自己控制,更加靈活。
getchar()是c語(yǔ)言中的一個(gè)輸入函數(shù),
可以用它來(lái)賦一個(gè)字符的值.
例如:? ? char a;
a=getchar();
當(dāng)你在鍵盤上輸入一個(gè)字符(如輸入g)后按回車,那么字符變量a的值就是'g'了。
與scanf的區(qū)別:
1、getchar()函數(shù)只能輸入一個(gè)字符型的值,而scanf()函數(shù)除了字符型,還可以輸入多種數(shù)據(jù)類型的值,包括整型、浮點(diǎn)型等。
2、scanf()函數(shù)輸入字符型需要%c說(shuō)明符,而getchar()函數(shù)不需要說(shuō)明符。
擴(kuò)展資料:
getchar()函數(shù)的注意事項(xiàng):
1、當(dāng)程序調(diào)用getchar時(shí),程序就等著用戶按鍵,用戶輸入的字符被存放在鍵盤緩沖區(qū)中,直到用戶按回車為止(回車字符也放在緩沖區(qū)中)。
當(dāng)用戶鍵入回車之后,getchar才開(kāi)始從stdio流中每次讀入一個(gè)字符。
如果用戶在按回車之前輸入了不止一個(gè)字符,其他字符會(huì)保留在鍵盤緩存區(qū)中,等待后續(xù)getchar調(diào)用讀取.也就是說(shuō),后續(xù)的getchar調(diào)用不會(huì)等待用戶按鍵,而直接讀取緩沖區(qū)中的字符,直到緩沖區(qū)中的字符讀完為后,才等待用戶按鍵。
2、getchar有一個(gè)int型的返回值,當(dāng)用戶鍵入回車之后,getchar才開(kāi)始從stdio流中每次讀入一個(gè)字符。getchar函數(shù)的返回值是用戶輸入的第一個(gè)字符的ASCII碼,如出錯(cuò)返回-1,且將用戶輸入的字符回顯到屏幕。
參考資料:
百度百科-getchar()
百度百科-scanf()
getchar
函數(shù)(單個(gè)字符的輸入函數(shù))
例
說(shuō)明getchar函數(shù)的格式和作用。
1
#include
"stdio.h"
2
void
main()
3
{
4
char
ch;
5
printf("Please
input
two
character:
");
6
ch=getchar();
7
putchar(ch);putchar('\n');
8
putchar(getchar());
9
putchar('\n');
10
}
程序運(yùn)行情況如下:
Please
input
two
characters:
ab↙(注意輸入方法)
a
b
1.
getchar函數(shù)的格式:c=getchar();
2.getchar函數(shù)的作用:從系統(tǒng)隱含的輸入設(shè)備(如鍵盤)輸入一個(gè)字符。
getchar函數(shù)只能用于單個(gè)字符的輸入,一次輸入一個(gè)字符。程序的功能是輸入一個(gè)字符,顯示一個(gè)字符,回車換行,再輸入并顯示一個(gè)字符。而運(yùn)行時(shí)字符是連續(xù)輸入的,運(yùn)行結(jié)果卻是正確的,這是因?yàn)檩斎胱址?,它們暫存于鍵盤的緩沖區(qū)中,然后由getchar函數(shù)從鍵盤緩沖區(qū)中一個(gè)一個(gè)的取出來(lái)。使用getchar函數(shù)時(shí),在程序(或文件)的開(kāi)頭也必須加上編譯預(yù)處理命令:#include
"stdio.h"
getchar輸入字符,一直到按下回車才結(jié)束,然后執(zhí)行代碼
getchar()函數(shù)是C語(yǔ)言專門為輸入單個(gè)字符而提供的,getchar()函數(shù)是從I/O字符流中讀取一個(gè)字符,必須輸入換行才能讀入字符。
例如:
#includestdio.h
int main(void)
{
char ch;
int i;
for(i=0;i5;i++)
{
ch=getchar();????//帶回顯,且等待按Enter鍵換行
printf("%c",ch);
}
return 0;
}
擴(kuò)展資料:
getchar()、getche()、getch()相比較
getchar()函數(shù)是C語(yǔ)言專門為輸入單個(gè)字符而提供的,getchar()函數(shù)是從I/O字符流中讀取一個(gè)字符,必須輸入換行才能讀入字符。
getche()、getch()函數(shù)也是讀入單個(gè)字符,是從控制臺(tái)直接讀取一個(gè)字符,無(wú)須換行即可讀入字符。
getchar()是C的標(biāo)準(zhǔn)庫(kù)函數(shù),包含在頭文件stdio.h中。
而getche()和getch()需要的頭文件是conio.h。conio.h不是C標(biāo)準(zhǔn)庫(kù)中的頭文件。conio是ConsoleInput/Output(控制臺(tái)輸入輸出)的簡(jiǎn)寫,其中定義了通過(guò)控制臺(tái)進(jìn)行數(shù)據(jù)輸入和數(shù)據(jù)輸出的函數(shù),主要是一些用戶通過(guò)按鍵盤產(chǎn)生的對(duì)應(yīng)操作。
getchar()函數(shù)從鍵盤讀入字符時(shí),輸入的字符帶回顯,并且必須等到輸入換行(按Enter鍵)才能讀取一個(gè)字符。
getche()函數(shù)從鍵盤讀入字符時(shí),輸入的字符會(huì)回顯到顯示屏上,但是無(wú)須輸入換行即可讀取一個(gè)字符。
getch()函數(shù)從鍵盤讀入字符時(shí),輸入的字符不回顯到顯示屏上,但是無(wú)須輸入換行即可讀取一個(gè)字符。
參考資料來(lái)源:百度百科-C語(yǔ)言函數(shù)
參考資料來(lái)源:百度百科-C語(yǔ)言