❶ c語言什麼時候應該加getchar()吃掉回車
getchar()只能接輸入的蘆敬侍一個字元,而不是字元串。getchar()也不是亂用的,一般情況就用在輸入字元的的情況下。至於後面說的每稿沒當有輸入語句時都去加一個getchar()是沒有必要的。如果想陪吵用getchar()去接住上次輸入的回車符以便給下面的運算帶來准確性的話,就是在輸入整型或者浮點型之後再加一個getchar(),至於要不要在每一行都加就要看什麼情況了。
❷ c語言字元列印時如何去掉回車
是的,你可以在輸出的時候判斷if('\n'==a[i])的話就不輸出
❸ C語言!!!
因為你前面薯寬中的輸入可能在鍵盤緩沖區中留下了一個'\n'(回車符,也是一個巧大字元),而你的現在的輸入排在數山回車符的後面,所以要用getchar();吃掉這個回車符,才能繼續讀取有效數據。
❹ C語言怎麼把回車字元去掉
printf("The code for '%c' is %d ",( a==' ' )?(' '):(a));
❺ 各位大俠小弟遇到一道C語言小難題,還望各位大俠拔刀相助啊!問題如下:
你需要了解C語言流的概念,你的輸入都是在一個叫做stdin的流裡面。
你輸入回車,才將之前的輸入送入了流裡面。
此時,scanf處沒姿理了回車以前的字元,流裡面剩下一個回車符。
getchar從流裡面取出一個字元,自然就是回車。(即所謂吃掉)。
不過這跡察薯段程序不好:
1、吃掉就不必賦值了,多餘動作,浪費時間。
ch=getchar(); /*那個最後輸入的回車符是怎麼被吃掉的啊?不解啊~*/
-> getchar(); /*那個最後輸入姿者的回車符是怎麼被吃掉的啊?不解啊~*/
2、getchar的返回值是int,使用char,說明作者對C語言的庫函數理解不深入。
❻ c語言中 scanf後面一定要跟個 getchar吃回車嗎
c語言中在讀取鍵盤數據時,一般是帶緩存的數據輸入,需要按回車鍵才能完成該「行」數據的輸入確認。
而scanf()函數對這個回車確認符並不進行處理,回車符會留在輸入緩存區中。
因此,在下一個讀「字元」操作函數(getchar, scanf("%c"), gets()等)運行時,會讀到這個字元。
而在讀數值型數據或字元串時,scanf()會從第一個非空白字元(空白字元指:回車,空格,TAB鍵)開始讀取,自動忽略前面的空白字元,而遇到空白字元結束該類型數據的輸入。
因此,是否一定要在scanf後面跟個 getchar吃回車,要看下一個輸入的數據類型是什麼,如果是讀字元類操作,處理辦法有多種方式:
一、用fflush(stdin)命令強行刷新輸入緩存,丟棄輸入緩存中的數據,此種方法在windows下使用有效,linux無效。
charch;
fflush(stdin);//不管緩存中有沒有數據,強行清除
ch=getchar();//這里會等待用戶輸入一個字元
二、前面有讀數據操作,現在要執行讀字元操作,則可用getchar()來吃掉前面的回車確認
inti;
charch;
scanf("%d",&i);//讀一個整數,回車確認
getchar();//先吃掉回車確認符,這兩句,效果同下一方法的那一句
ch=getchar();//這里會等待用戶輸入一個字元
三、在scanf()書寫上做文章,如:讀一個數據,以回車確認,則輸寫成如下格式
inti;
charch;
scanf("%d%*c",&i);//%*c表示讀一個字元,並不賦值給任何變數
ch=getchar();//這里不會讀到回車符
❼ C語言while循環在輸入非數值時終止應該怎麼寫
intmain()
{
charc;
while(1)
{
scanf("%c",&c);
getchar();//注意此處用於吃掉「回車符」
if(c>='0'局昌培&&c<='9')
{
printf("輸入合桐唯法迅亮c=[%c] ",c);
}else{
printf("輸入非法c=[%c] ",c);
break;
}
}
return0;
}
❽ 新手求問java在連續輸入的時候 如何吃掉輸入與輸入之間的回車。就像c語言中連續輸入的時候用getchar
是不是連續輸入多個字元串的時候會出現中間一個字元串自動讀取了耐亂枯回車符?
Scanner input = new Scanner(System.in);
String id = input.nextLine();
String name = input.nextLine();
當出現類似代碼時,結束id的輸入必須按回車符,而回車符會留在緩沖區,陪碧這樣便被下一次的name的輸入讀取,導致name讀到了此回車符,一個可行的解決方法是在其中間吃掉回車符,代碼可改成如下
Scanner input = new Scanner(System.in);
String id = input.nextLine();
input.nextLine(); //吃掉回車昌洞符
String name = input.nextLine();
❾ 用c語言編程,求大神
#include<reg51.h>
#defineucharunsignedchar
#define飢清uint納肢銷unsignedint
uchardata*d1,*d2;
uintdat;
main()
{
uchartemp[5],i,l;
d1=0x30;
d2=0x20;
dat=*d1*256+*(d1+1);
temp[0]=dat/10000;
temp[1]=dat%10000/1000;
temp[2]=dat%1000/100;
temp[3]=dat%100/10;
temp[4]=dat%10;
for(i=0;i<5;i++)if(temp[i]!=0)break;
l=5-i;
*d2=l;
d2++;
do{
*d2=temp[i];
d2++;
洞游i++;
}while(i<5)
while(1);
}
❿ C語言while語句吸收回車符問題
在實模式下,所有命令響應都是以"回車"開始,也就是ASCII=13,而你在輸入數據的過程中,他先會把數據存貯到鍵盤BUF中,當遇到"回車"時,他會才會把數據送到要到達和地方,當然這個BUF也是有亮雹大小,如果你在輸入數據的過程中,超過了BUF的大小殲塌,那麼他就會立刻執行.而不再等是否當前輸入的是"回車",while((c=getchar())!='\n')而這句話是的意思是:如運行程序後輸入下列字元:abcdefg"回車"那麼他就會從字母a開始讀,讀完後會把a從BUF中清除掉.往復讀取一直到"回車",結束.所以了,大家在以後的編程中,如用到:scanf()這個函數時,這處函數在執行完以後會在內存中留下"回車"符,所以,最好在後面加上一個getchar(),好把"回車"符從內存中清除,以免在後面的應用中敬改帆出錯.