c語言getchar
㈠ c語言getchar問題
你好,朋友,代碼本沒有問題,就是你的這2個while循環是相互矛盾的,你內存的while循環的作用是去掉一行中除了第一個以外的所有字元,你說你輸入「aaaa」+回車,看到了吧,被內存while循環把從第二個字元開始的"aaa"+回車給清除了,所以這不是死循環,而是你必須得在某一行第一個字元就輸入回車。既然你要求在任意位置輸入回車結束,那麼你的內層while循環是否多此一舉呢?自己考慮一下,把內層while循環去掉就可以實現你說的輸入"aaaa"+回車結束啦!
㈡ C語言getchar詳細用法
因為getchar一次只讀一個字元,如果只有一次都入的話那就不還while會變成死循環。所以必須要有你第一個注釋的語句
㈢ c語言getchar函數的問題
getchar()是在字元緩沖區里讀數據的,getchar是在你輸入enter的時候才從緩沖區里讀數據的,在你沒有輸入Enter前,字元都是放在緩沖區的,
比哪,你輸入「china」,再按回車,china就放入了緩沖區,
並且由while((c=getchar())!='\n')一個個字元的讀取,當讀到了回車(\n)就結束,
還有個讀取字元的getch(),比較下這兩個,你會得到更多細節,
㈣ c語言getchar() 問題
幫你回答
#include
<stdio.h>
int
main(void)
{
char
c;
char
a;
char
b;
a
=
getchar();
getchar();//存儲回車鍵
因為回車鍵也是一個字元,如果沒有這個的話,那麼他就將第二個字元b存儲成回車
b
=
getchar();
getchar();
//存儲回車鍵
printf
("%c%c\n",a,b);
while
((c
=
getchar())
!=
'\n')
{
printf("%c",
c);
}
return
0;
}
㈤ C語言getchar的結果
getchar 由宏實現:#define getchar() 。 getchar(stdin)語句功能:getchar有一個int型的返回值,當程序調用getchar時,程序就等著用戶按鍵,用戶輸入的字元被存放在鍵盤緩沖區中,直到用戶按回車為止(回車字元也放在緩沖區中)
㈥ c語言里getchar()是什麼
getchar()函數是C語言專門為輸入單個字元而提供的,getchar()函數是從I/O字元流中讀取一個字元,必須輸入換行才能讀入字元。
例如:
#include<stdio.h>
int main(void)
{
char ch;
int i;
for(i=0;i<5;i++)
{
ch=getchar();//帶回顯,且等待按Enter鍵換行
printf("%c",ch);
}
return 0;
}
(6)c語言getchar擴展閱讀:
getchar()、getche()、getch()相比較
getchar()函數是C語言專門為輸入單個字元而提供的,getchar()函數是從I/O字元流中讀取一個字元,必須輸入換行才能讀入字元。
getche()、getch()函數也是讀入單個字元,是從控制台直接讀取一個字元,無須換行即可讀入字元。
getchar()是C的標准庫函數,包含在頭文件<stdio.h>中。
而getche()和getch()需要的頭文件是<conio.h>。conio.h不是C標准庫中的頭文件。conio是ConsoleInput/Output(控制台輸入輸出)的簡寫,其中定義了通過控制台進行數據輸入和數據輸出的函數,主要是一些用戶通過按鍵盤產生的對應操作。
getchar()函數從鍵盤讀入字元時,輸入的字元帶回顯,並且必須等到輸入換行(按Enter鍵)才能讀取一個字元。
getche()函數從鍵盤讀入字元時,輸入的字元會回顯到顯示屏上,但是無須輸入換行即可讀取一個字元。
getch()函數從鍵盤讀入字元時,輸入的字元不回顯到顯示屏上,但是無須輸入換行即可讀取一個字元。
㈦ C語言getchar()對字元數組賦值的過程是怎麼呢
getchar()按順序從緩沖區讀走一個字元,相當於清除緩沖區,每讀取一次緩沖區少一個字元,
例如:鍵盤輸入數據 1 2 3 4 5 回車
輸入緩沖區中數據:1 2 3 4 5 回車
點擊回車後,getchar()開始從緩沖區中讀取字元,一次讀取一個
第一次 getchar() = '1', 緩沖區數據還有:2 3 4 5
第二次 getchar() = '2', 緩沖區數據還有:3 4 5
第二次 getchar() = '3', 緩沖區數據還有:4 5
...
直到緩沖區中的數據被讀取完
int i=0; //初始化
while( (a[i++]=getchar()) != '#')
的過程相當於
do
{
a[i] = getchar();
i++;
}
while(a[i-1] != '#') //這個地方懂吧
希望對你有幫助!!
㈧ C語言getchar怎麼理解
我理解你的問題,但是在我回答之前,我建議你再把C語言從最基礎的學起,因為從你的問題裡面我可以看出你對C語言的很多最基礎的知識都沒有掌握.
然後我一一回答你的問題:
1.
最後是HEI表示你按了回車以後程序的輸出結果,
2.
當執行到c1=getchar():
時,程序會等待並要求你輸入一個字元,並將這個字元賦值給變數C1
3.
putchar(c1);
表示將ci輸出到屏幕,
4.
至於為什麼C2也可用int形式,是因為在C語言中char類型和int類型是根據ASCII碼一一對應的,可以互相表示,例如字母a是97,字元0是48等.
㈨ c語言中的getchar如何使用
getchar的兩點總結:
1.getchar是以行為單位進行存取的。
當用getchar進行輸入時,如果輸入的第一個字元為有效字元(即輸入是文件結束符EOF,Windows下為組合鍵Ctrl+Z, Unix/Linux下為組合鍵Ctrl+D,
那麼只有當最後一個輸入字元為換行符' '(也可以是文件結束符EOF,EOF將在後面討論時, getchar才會停止執行,整個程序將會往下執行。
譬如下面程序段:
while((c = getchar()) != EOF){ putchar(c);}
執行程序,輸入:abc,
然後回車。
則程序就會去執行puchar(c),
然後輸出abc,
這個地方不要忘了,系統輸出的還有一個回車。
然後可以繼續輸入,再次遇到換行符的時候,程序又會把那一行的輸入的字元輸出在終端上。
對於getchar,肯定很多初學的朋友會問,getchar不是以字元為單位讀取的嗎?那麼,
既然我輸入了第一個字元a,
肯定滿足while循環(c = getchar()) != EOF的條件阿,
那麼應該執行putchar(c)在終端輸出一個字元a。不錯,我在用getchar的時候也是一直這么想的,但是程序就偏偏不著樣執行,而是必需讀到一個換行符或者文件結束符EOF才進行一次輸出。
2.getchar()的返回值一般情況下是字元,但也可能是負值,
即返回EOF。
㈩ C語言getchar使用
getchar()是完全可以讀取輸入的第一個字元的。如果有據說的問題,可能是所寫的代碼中的其它問題。請把有問題的代碼粘貼出來看看?
以下的代碼讀取一行上所有輸入的字元並輸出:
#include <stdio.h>
int main()
{ char c;
while((c=getchar())!=' ')
putchar(c);
return 0;
}