c語言中getchar後得到字元不用,不賦給變數,這個字元去

2021-12-19 12:43:19 字數 5908 閱讀 9958

1樓:匿名使用者

getchar是一個函式,c語言呼叫函式的過程大概如果,首先各種暫存器當前資料入棧,即保護現場,然後引數入棧,接著cs:ip指向函式首地址處,開始執行這部分**,它會首先pop出壓入棧中的引數,然後執行函式體,最後getchar一定是通過一個變數將讀到的字元返回的。比如:

char getchar()

這樣,函式中ch變數就是使用者輸入的字元,它最後會被return 。 而在函式體中該變數可以說是有存放地點的,它就存放在ch當中。當return ch;時ch會儲存到暫存器eax中,然後返回,各種暫存器(除了eax)被pop重新改回原值。

到呼叫處將eax的值賦給變數。

此處你說沒有變數來接收這個返回值,那麼eax中的值在隨後的使用中應該被直接捨棄了。而在記憶體中主函式的部分應該沒有ch這個值

2樓:匿名使用者

很簡單的一個問題,我也是正在學c語言的。a,b是字元型,如果要解釋你這個所以那就正常咯,把一個字元的asc碼賦給字元變數。 a,b是變數 a =

3樓:

a,b是字元型,如果要解釋你這個所以那就正常咯,把一個字元的asc碼賦給字元變數。 a,b是變數 a =

4樓:匿名使用者

程式的儲存區有如下幾個:

1 棧區

2 堆區

3 全域性(靜態)區

4 **區

5 文字常量區

你getchar後得到的字元是存放在棧區中的,如果沒有相應的變數來接收,它所佔用的記憶體空間馬上就會被用作其它用途。

ps:以上只是我根據已有的知識分析出來的結果而已,還沒有認真地去證實。前面講到的5個記憶體區倒是肯定的。

c語言getchar()能接受多個字元?

5樓:天雲小店

getchar函式每次只從緩衝區中接受一個字元。

getchar有一個int型的返回值。

當程式呼叫getchar時,程式就等著使用者按鍵,使用者輸入的字元被存放在鍵盤緩衝區中,直到使用者按回車為止(回車字元也放在緩衝區中)。當使用者鍵入回車之後,getchar才開始從stdin流中每次讀入一個字元,getchar函式的返回值是使用者輸入的第一個字元的ascⅱ碼,如出錯返回-1,且將使用者輸入的字元回顯到螢幕。

如使用者在按回車之前輸入了不止一個字元,其他字元會保留在鍵盤快取區中,等待後續getchar呼叫讀取。也就是說,後續的getchar呼叫不會等待使用者按鍵,而直接讀取緩衝區中的字元,直到緩衝區中的字元讀完為後,才等待使用者按鍵。

舉例如下:

char ch;

ch = getchar();   // 接收使用者輸入的第一個字元,並賦值給字元變數ch  返回值為輸入第一個字元的ascii碼

6樓:窩窩裡的豬

c語言getchar()使用問題 -|xchbin 發表於 2005-6-11 15:58:00

最近在使用getchar()函式時老是出現問題,仔細寫了點實驗程式才發現問題:原來在使用getchar時候系統使用了快取機制,可以將每次輸入的多個字元暫存起來,但是返回的是第一個字元。

為了每次僅使接收的第一個字元起作用,我們必須人為的將快取清空

將下面的程式存為try.c檔案,在linux下用gcc -o try -g try.c編譯,然後執行./try

程式看連結。。。。。。。

可見我們在輸入一次命令espy(以確定鍵結束)後程式自動執行了四次,這時因為它把第一次輸入的spy包括確定鍵都儲存起來下次的時候使用了,所以我們要加入清空快取的指令,即將上面遮蔽的部分開啟程式就好了.

7樓:匿名使用者

只能接受一個字元,c=getchar()把接受的字元(ascii碼)存到了變數c裡。

對,getchar()用了輸入快取,輸入回車後getchar()才在快取內讀一個字元,getch()沒有用快取不用輸回車就讀入且不回顯(一般用來讀密碼),不過linux裡沒有getch()。

8樓:匿名使用者

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

9樓:傳說中的綠客

只能接受一個,c=getchar() 是把接受的一個值賦值給c

設一個變數c,需要用getchar()獲取數字或符號,數字得到也是字元怎麼解?,只用一個變數可以實

10樓:

數字也可以定義為字元型資料,你可以看看ascii**

11樓:爽朗的小洛

有一個函式atoi(const char *),,大致寫下偽**,詳細你還要判斷下

while((c = getchar()) != '\n')

12樓:笑清風

getchar()從stdio流中讀字元,相當於getc(stdin),它從標準輸入裡讀取下一個字元。

c = getchar(); c獲得輸入的字元或數字。 如果輸入的是數字,它會以ascii為準,轉換成相應的字元。printf("字元%c = 數字 %d",c,c);

下面是將數字轉換為字串(你不一定用的上):

c語言提供了幾個標準庫函式,可以將任意型別(整型、長整型、浮點型等)的數字轉換為字串。以下是用itoa()函式將整數轉換為字串的一個例子:

# include

# include

void main (void);

void main (void)

13樓:匿名使用者

不知道你要表達什麼?

c語言getchar()對字元陣列賦值的過程是怎麼呢?

14樓:匿名使用者

int main()

c語言裡getchar()是什麼

15樓:橘落淮南常成枳

getchar()函式是c語言專門為輸入單個字元而提供的,getchar()函式是從i/o字元流中讀取一個字元,必須輸入換行才能讀入字元。

例如:#include

int main(void)

char ch;

int i;

for(i=0;i<5;i++)

ch=getchar();    //帶回顯,且等待按enter鍵換行

printf("%c",ch);

return 0;

16樓:如此_青春

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

例如:    char a;

a=getchar();

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

與scanf的區別:

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

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

17樓:匿名使用者

getchar函式從標準輸入裡讀取下一個字元,返回型別為int型,返回值為使用者輸入的ascⅱ碼,出錯返回eof。

該函式宣告在stdio.h標頭檔案中,使用的時候要包含stdio.h標頭檔案。通常,可以利用getchar函式讓程式除錯執行結束後等待程式設計者按下鍵盤才返回編輯介面。

18樓:吳秀菅利

getchar()是c語言的標準輸入函式,宣告於stdio.h,其宣告為

intgetchar(void);

功能是從輸入緩衝中讀取一個位元組的資料,並將值作為返回值返回。

當出現錯誤時返回-1(eof)。

其一般呼叫格式為,

intc;c=

getchar();

執行後,c中儲存的就是輸入字元的ascii碼值。

19樓:匿名使用者

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

20樓:

getchar函式用於輸入字元,其呼叫形式如下:

ch=getchar()

getchar後的一對圓括號內沒有引數,但這一對圓括號不可少,getchar()函式從終端讀入一個字元作為函式值。以上呼叫形式把讀入的一個字元賦給變數ch。在輸入裡,空格、回車都將作為字元讀入,而且只有在使用者敲入enter鍵時,讀入才開始執行。

而scanf是格式化輸入,需要指定輸入的格式這是與getchar函式最大的不同之處。。。。

21樓:吳烈偉

說簡單點就是在螢幕上輸入一個字元,比如a=getchar(),執行後在螢幕上輸入y後回車,就是把y付給了a

22樓:匿名使用者

scanf是格式化輸入,需要指定輸入的格式

getchar是返回輸入流中的第一個字元的ascii碼值

在c語言中 char ch; ch=getchar()表示什麼意思呀··?這個 到底怎麼用使用它·

23樓:四舍**入

getchar()函式的作用是從計bai算機終端(一般du為鍵zhi盤)輸入

一個dao字元。版getchar()函式只能接收一個字元,其函式值就是從輸權入裝置得到的字元。

舉個例子,用法如下:

#include

void main()

24樓:匿名使用者

char ch; ch=getchar()意思是將變數baich定義du為char字元型別,當鍵盤輸入一個zhi字元的時候,將dao此值賦回給變數ch。

getchar()函式的作用是從

答計算機終端(一般為鍵盤)輸入一個字元。getchar()函式只能接收一個字元,其函式值就是從輸入裝置得到的字元。

當程式呼叫getchar時,程式就等著使用者按鍵。使用者輸入的字元被存放在鍵盤緩衝區中,直到使用者按回車為止(回車字元也放在緩衝區中)。

25樓:佘萍韻申桀

char

ch;ch=getchar()意思是將變copy

量ch定義為char字元型別bai,當鍵盤輸入一個字du

符的時候,將zhi此值賦給變數ch。

getchar()函式的作用dao是從計算機終端(一般為鍵盤)輸入一個字元。getchar()函式只能接收一個字元,其函式值就是從輸入裝置得到的字元。

當程式呼叫getchar時,程式就等著使用者按鍵。使用者輸入的字元被存放在鍵盤緩衝區中,直到使用者按回車為止(回車字元也放在緩衝區中)。

擴充套件資料:

c語言書寫規則:

1、一個說明或一個語句佔一行。

2、用{}

括起來的部分,通常表示了程式的某一層次結構。{}一般與該結構語句的第一個字母對齊,並單獨佔一行。

3、低一層次的語句或說明可比高一層次的語句或說明縮排若干格後書寫。以便看起來更加清晰,增加程式的可讀性。在程式設計時應力求遵循這些規則,以養成良好的程式設計風格。

參考資料:

搜狗百科-getchar()

26樓:匿名使用者

getchar()的意思是接bai受輸入的一個字du符。

你這寫的「zhichar ch; ch=getchar();」的意思就是先定dao義一個字元變數ch,然專後輸入屬一個字元值存入ch之中。

舉個例子,用法如下:

#include

void main()

//這個程式會將你輸入的那個字元在螢幕上輸出來。

27樓:誰讓我揩油

getchar()獲取從鍵盤輸入的一個字元,把它的值賦給字元型變數ch

c語言getchar和,C語言getchar 和EOF

感覺是緩衝區的問題 getchar是從緩衝區讀取字元 而c程式獲取到緩衝區資料的條件是在輸入中獲取到了換行符或者eof一類的值 當遇到換行符的時候,會把輸入的資料,包括換行符在內,存到緩衝區 當遇到eof的時候,會把輸入的資料,不包括eof存到緩衝區,除非只有eof 所以當你在輸入abcdf z時,...

c語言中怎麼用C語言中怎麼用

最近 盤 字很流行,盤是什麼意思?為什麼能成為網路熱詞?結果是3 解答過程 自 首先算a b 表示異或 十進位制a 1,等於二進位制0001 十進位制b 2,等於二進位制0010 異或為對應位不同時取真,故0001 0010結果為0011,即為十進位制的3 再算 a b c 表示按位與,a b的結果...

c語言中,temp是什麼函式,C語言中,temp是什麼函式

在c語言中,temp沒有特別的含義,既不是關鍵字也不是庫函式。可能是程式設計人員自版定義的權一個變數或函式,通常用來表示一個臨時變數,來自 臨時 的英文單詞temporary。舉例如下 int temp 定義一個int型別的變數,變數名為temp double temp 定義一個double型別的變...