當前位置:首頁 » 編程語言 » c語言未輸入字元
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言未輸入字元

發布時間: 2022-07-11 05:11:47

c語言:為什麼會沒有字元的輸入,請指出哪裡錯了,應該怎麼改。

# include<stdio.h>
void main()
{
float a,b,sum;
char d;
printf("請輸入兩個數字\n");
scanf("%f",&a);
scanf("%f",&b);
while(getchar()!='\n')continue;//加上這句就可以了
printf("選擇演算法 '+','-','*','/'\n");
scanf("%c",&d);//這里,上面scanf輸入接收後的回車符被這個scanf接收了,把上面輸入後的回車符去掉就可以了
switch(d)
{
case '+':sum=a+b;break;
case '-':sum=a-b;break;
case '*':sum=a*b;break;
case '/':sum=a/b;break;
}
printf("%.0f%c%.0f=%.0f\n",a,d,b,sum);
}

❷ c語言問題 為什麼沒有提示輸入字元 改成 choice=getchar()也不行,改成choice=getch()才可以 詳細一下

這是由於輸入流的問題,緩沖區內還存在數據,讀寫的時候直接就賦給了 變數choice。
你要注意,在處理字元類型的輸入時地注意緩沖區是否還留有數據,有可能是個回車(一般情況下)。所以在讀入字元型語句前,比如 scanf("%c",&choice); 前加 getchar(); 語句,這樣就不會有問題了,或者也可以使用 fflush(stdin); 直接清空輸入流。那位說用 scanf("%s",&choice); 這種字元串處理代替字元,其實這種方法在所有數據都是字元時使用倒是挺好,這樣就不用管輸入流了,因為 %s 是輸入到回車結束的,也不會產生類似問題!

❸ c語言字元串可以輸入,但是字元無法輸入

#include"stdafx.h"
intmain()
{charstr[30];
charm;
inti,j=0;
printf("inputastring: ");
scanf("%s",str);
printf("inputachar: ");
//m=getchar();(這里出問題,換成scanf("%c",&m)也是一樣問題,問題見下面圖片)
fflush(stdin);
scanf("%c",&m);
for(i=0;str[i]!='';i++)
{if(str[i]==m)
j=j+1;}
printf("=%d ",j);
}

修改後程序如上所示,因為你沒清空scanf

❹ 求解:為什麼下列c語言程序中,後面單個字元還沒有輸入程序就結束了

第一個scanf,你輸入了一個字元串和一個回車符,scanf不會處理掉回車符。所以下一個scanf讀取了遺留下來的那個回車符。要想解決這個問題,第一個scanf結束後加getchar();

❺ 這個C語言程序運行時,我輸入一個數字,按回車,沒輸入字元串,就直接顯示了,為什麼呢

貼上你的代碼。。調用輸入函數錯了吧。

❻ C語言字元串無法輸入

把scanf一行改為:
scanf("%d%*c",&c[0].a);
作用是把輸入數字後面的一個回車符丟棄,防止下一行讀到一個「空字元串」。

❼ c語言的字元輸入問題

你應該是認為你只輸入了abc3個字元,應該就只會出現3次agin,但是當這3次完了之後你是按的「回車」鍵結束,所以enter被存入緩沖區,程序會將"回車"鍵也就是'\n'給c,所以會有4次agin輸出。

❽ 遇到了一個C語言結構體數組下標在未輸入字元串時會從[0]變成[1]

理解錯誤,i值並沒有啥變化,輸出0後接著馬上就輸出了1,是因為最開始時,gets把你的輸入緩沖里的換行符讀取了,你可以試試在gets那句前面加一句fflush(stdin);來刷新緩沖再看結果

註:fflush(stdin)並不是個符合標準的做法,但在VC++或Mingw上基本能符合你的預期

❾ C語言如何判斷是否有字元輸入

使用ctype.h裡面isdigit()和isalpha函數就可以判斷了

#include <ctype.h>
#include <stdio.h>
int main()
{

printf("1 是數字嗎? %s\n",isdigit('1')?"是":"不是");
printf("a 是字母嗎?%s",isalpha('a')?"是":"不是");

return 0;

}

❿ 如果一個C語言程序用字元型數組儲存數據,你輸入數據時沒輸入字元而是直接回車跳過了,這個數組里會儲存

有點看不懂你的意思....

如果你是說對字元型數組的某一個數組元素進行輸入賦值的話


那麼肯定不會有,因為只在字元串中有系統自動添加

所以編譯器會讀取一個 回車符' ',到printf輸出時會自動換行

如圖 注意 第二行是printf輸出 後出現的換行