c語言裡怎樣用用,C語言裡怎樣用用getchar

2021-12-19 15:01:36 字數 5680 閱讀 8420

1樓:風清響

getchar()從鍵盤讀取乙個字元,那麼你應該宣告乙個變數來儲存這個字元。不如

c=getchar()

然後你列印c的話就可以列印這個讀取的字元。

如果想要依次處理讀入的字元經常這樣使用

while((c=getchar())!=eof)

表示式就是說,只要沒有到檔案結束,就不斷從鍵盤讀入輸入的字元,並用表示式處理

例如while((c=getchar())!=eof)

s[i]=c;

不斷讀入字元,並把它存在乙個s陣列裡面

你這段程式裡,是getchar()的另外乙個用途,即輸入任意按鍵,程式結束,相當於讓程式暫停,然後你隨便按乙個按鍵,程式結束。我們不需要列印這個字元,也不關心它是什麼,所以不用把它賦值給任何變數,我們的目的就是讓系統再吃掉乙個字元即可。

不過你printf("%d,c");這一句寫錯了,c應該在引號外面,c表示%d引用的變數

printf("%d「,c);

2樓:王囧囧

// 這麼改,注意printf函式所需要引數的格式printf("%d", c);

// 另外,這個例子裡getchar是用來使程式暫停,等待回車後退出的。

// getchar的基本用法是從標準輸入(鍵盤)讀取下乙個字元,例子為:

int main(void)

3樓:

我看你的分號有中文的分號 。要全英的。

int main()

4樓:金色潛鳥

printf("%d",c);

c語言裡getchar()作用?

5樓:天雲小店

getchar()的作用是從鍵盤上讀入乙個字元,並帶回顯。

getchar()函式等待輸入直到按回車才結束,回車前的所有輸入字元都會逐個顯示在螢幕上,但只有第乙個字元作為函式的返回值。

getchar函式原型如下:

函式格式:int getchar(void);

功 能:從標準輸入裝置讀取下乙個字元返 回 值:返回所讀字元,否則返回-1

6樓:匿名使用者

兩個getchar函式的目的都是為了吸收上一次輸入的回車符,以防止gets獲取空字串

7樓:木葉風窗

是c語言中的乙個函式,

可以用它來賦乙個字元的值.

例如:char a;

a=getchar()();

當你在鍵盤上輸入乙個字元後按回車;(輸入u)那麼字元變數a的值就是'u'了.

8樓:匿名使用者

scanf("%d",&n);

getchar();

for(i=0;i

是指上面兩行中間的getchar()嗎?這裡的getchar()函式主要用於吸收緩衝區中殘留的字元,避免前面輸入資料後,對後面的gets()輸入的影響。

執行完scanf()函式後,緩衝區中會留下換行符等其他字元

9樓:匿名使用者

用來獲取上次輸入的回車

scanf();輸入的回車

c語言中的getchar如何使用

10樓:如此_青春

getchar()是c語言中的乙個輸入函式,可以用它來賦乙個字元的值.

例如:    char a;

a=getchar();

當你在鍵盤上輸入乙個字元(如輸入g)後按回車,那麼字元變數a的值就是'g'了。

與scanf的區別:

1、getchar()函式只能輸入乙個字元型的值,而scanf()函式除了字元型,還可以輸入多種資料型別的值,包括整型、浮點型等。

2、scanf()函式輸入字元型需要%c說明符,而getchar()函式不需要說明符。

11樓:御阪妹妹

getchar()返回輸入流中的乙個位元組,如果輸入流已經到尾部,返回eof(-1)

舉例#define eof -1

void func(void)

這個函式會在輸入eof後結束讀取,然後輸出輸入的倒續。

12樓:潮汐之湧動

char c;

c=getchar();//表示輸入乙個字元不過我平時太多直接 getchar(); 以此來直接吃掉前面scanf的那個回車以防干擾下面的輸入

另外還有乙個getch(),這個作用與getchar()一樣是輸入乙個字元,不過getchar()輸入了在控制台會顯示字元,getch()不會顯示,所以getch()常用作密碼輸入

13樓:匿名使用者

請看

c語言中getchar()的用法

14樓:浪子_回頭

getchar 由巨集實現:#define getchar() 。

getchar(stdin)語句功能:getchar有乙個int型的返回值,當程式呼叫getchar時,程式就等著使用者按鍵,使用者輸入的字元被存放在鍵盤緩衝區中,直到使用者按回車為止(回車字元也放在緩衝區中)。

當使用者鍵入回車之後,getchar才開始從stdin流中每次讀入乙個字元,getchar函式的返回值是使用者輸入的第乙個字元的ascii碼。

如出錯返回-1,且將使用者輸入的字元回顯到螢幕,如使用者在按回車之前輸入了不止乙個字元,其他字元會保留在鍵盤快取區中,等待後續getchar呼叫讀取。

也就是說,後續的getchar呼叫不會等待使用者按鍵,而直接讀取緩衝區中的字元,直到緩衝區中的字元讀完為後,才等待使用者按鍵。

示例:#include

void main()

char c;//定義乙個字元

printf("input a character\n");

c=getchar();  //從鍵盤獲取乙個字元

putchar(c);//輸出字元

15樓:匿名使用者

getchar();的用途是從從標準輸入流讀取乙個字元,讀回車符時退出。getchar();永遠只向快取中輸入乙個字元。

getchar();的用法很多:

一種就是清空回車符,這種情況一般發生在在迴圈中涉及到輸入的情況。

還有一種是某些編譯平台(ide)在執行程式時並沒有在程式執行後給人看結果的時間,這時候在程式最後加上getchar();就能造成程式的暫停,給程式設計師度結果的機會。

用getchar();時,在鍵盤上按乙個字元後,要按回車才能讀取進去;用getch();時,在鍵盤上按乙個字元馬上就被讀取進去,不用按回車,因此可以作為「按任意鍵繼續」的執行語句。

example

為什麼第一次迴圈x=getchar();沒執行?而後幾次卻可以執行?把那句改為 cin;也是同樣的效果。

#include

using namespace std;

int main()

}因為你用getchar();只能接收到乙個字元,當你輸入n值後,你按了回車鍵,這個值在windows平台下是兩個ascii字元/n/r也就是回車換行,當回車時/n被控制台接收面/r沒有,那麼第一次進入for時getchar();就已經接收了/r所以就出現你看到情況了。

對,用cin當然是正確的。因為cin是乙個istream的物件這個c++標準庫里的類,它是把一切輸入都流入這個物件,它每接收乙個輸入都放在流裡,在底層會過濾掉一些沒用的輸入,它只會使用者的有效輸入置入變數就是它的工作方式。

16樓:gta小雞

ch=getchar(); //從緩衝區中讀入乙個字元賦給chwhile (ch != '#') //檢查ch是否等於'#'

putchar(ch); //如果不等於'#'則執行迴圈體,輸出ch的值然後返回上一行

getchar(); //如果ch不等於'#',這裡的**永遠不會執行到

17樓:貿石檢安

getchar函式中輸入乙個字元,包括數字都可以。

例:c=getchar()這個語句的話,程式執行到這個地方的時候,會要求你輸入乙個字元,輸入字元按下回車,你所輸入的字元就傳到了變數c中

再例:getchar()表示起暫停作用哦。

18樓:興堅成後文

是這樣的,你要進行下面的程式,就得按下回車鍵使輸入生效,這樣就輸入了'\n'

迴圈就退出了

19樓:鈄育普微

getchar()要讀入回車後才會跳出迴圈648152後面只有跟回車才會執行下乙個語句

,否則繼續執行迴圈

20樓:匿名使用者

c是int的時候取資料時忽略了空格,但是c為char時取到的是空格

21樓:一諾寶貝

main()

這段程式的作用是讀入乙個字元後立即輸出, 直到輸入乙個「換行」為止(從鍵盤輸入乙個字元,如果不是換行符就執行printf,在螢幕輸出); 同時,注意從終端鍵盤向計算機輸入時,是在按 enter 鍵以後才將一批資料一起送到記憶體緩衝區中去的。

使用getchar函式還應注意幾個問題:

getchar函式只能接受單個字元,輸入數字也按字元處理。輸入多於乙個字元時,只 接收第乙個字元。

使用本函式前必須包含檔案「stdio.h」。

在tc螢幕下執行含本函式程式時,將退出tc 螢幕進入使用者螢幕等待使用者輸入。輸入 完畢再返回tc螢幕。

22樓:匿名使用者

要明白這個這個問題,首先要理解輸入緩衝的機制和scanf的原理。

當執行控制台程式的時候,會有乙個輸入緩衝區,這個緩衝區就是放置你輸入的字串的,無論你輸入的是數字還是字元,放到緩衝區裡都是字串,只有你呼叫scanf時指定不同的格式才會產生不同的含義。只有當你輸入回車的時候,才會把你的輸入新增到緩衝區裡,當輸入回車之前,scanf和getchar都還沒有呼叫。

當你呼叫scanf的時候,會首先檢查緩衝區是否還有內容,如果沒有則程式停止,接受輸入,當你輸入回車後,你的輸入進入緩衝區,然後scanf從緩衝區中拿出(拿出的意思是從緩衝區複製乙份放到變數裡,然後從緩衝區中刪除)它想要的字元,如果沒有它想要的,則不會從緩衝區中刪除任何東西,繼續執行。關鍵是什麼是它想要的,這就跟scanf的第乙個引數裡指定的格式有關了。

如果格式是%c,那麼任何字元都是它想要的,所以你第二個程式裡的第二個scanf("%c")會得到『+』後面的空格' '。如果格式是%d,則會忽略任何空白字元(空格、回車、製表符等),忽略的意思是,從緩衝區裡刪除,但並不儲存;如果遇到數字,則拿出並儲存給後面的整數,也就是說%d的時候,scanf想要的字元是數字和空白符。所以你第乙個程式裡的第二個scanf("%d")忽略掉了空格,正確輸入了數字。

23樓:匿名使用者

getchar不要也可以,建議不要,因為沒什麼意義;

你的程式中getchar執行了的,在輸入數字後按的那個enter鍵就執行了getchar();

但我們一般編寫時都沒要。

scanf("%d/%d",&a,&b);

有一點小錯,應該把"/"刪除,改為

scanf("%d%d",&a,&b);或scanf("%d %d",&a,&b);

程式輸出才正確,否則無論你輸入什麼,輸出都為0,你可以試試

怎樣用c語言判斷數是不是整數怎樣用C語言判斷乙個數是不是整數

如果用實型變數x接收乙個數或通過計算得到乙個數後要知道它是不是整數,沒有很好的辦法。因為實數在計算機中不能準確地儲存,所以不能直接判斷兩個實型量 x,與表示整數的實型量,必須要同型別的量才能比較 是否相等,首先要明確能允許的誤差是多少。比如,一般情況當誤差的絕對值小於10的負8次方時我們可以認為兩個...

怎樣用C語言編寫笛卡爾積,速求!用C語言來實現兩個二元陣列的笛卡爾積!

include define m 3 define n 2 int main n return 0 abc 12 集合a a b c 集合b 1 2 速求!用c語言來實現兩個二元陣列的笛卡爾積!include include int main for i 0 i n i for i 0 i m i ...

怎樣用c建立簡單程序怎樣用c建立乙個簡單程序

include int main 用createprocess 用法見msdn 以下迴圈開啟記事本 startupinfo startupinfo startupinfo.cb sizeof startupinfo process information process info for int i...