C語言整型變數輸入時輸入字元會怎麼樣?

2025-07-16 15:10:08 字數 3023 閱讀 6679

1樓:風若遠去何人留

c語言輸入整型變數時,需要用到scanf函式,形式為scanf("%d",&a);

即讀入乙個整型變數,並將值賦值給a。

執行該操作時,scanf會到輸入中,讀取字元,如果是合法的整型字元(0~9),會根據規則計算值並存入到a中。當遇到非數字字元時結束。

所以,如果系統要求讀入整型時,輸入了非數字字元,那麼scanf就無法得到有效值並賦值給a,這時scanf會出錯,對a不做處理,同時以返回值方式報錯。

2樓:網友

應該是乙個不確定的數(有可能是輸入字元的位址(猜))

3樓:網友

輸入之後不會存入對應的記憶體區域,相當於沒輸入你可以用下面**去測試:

#include ""

int main()

如果你輸入字元a,那麼輸出就是0,可以看到,int變數a的值沒有被scanf函式改變,也就得出上面的結論。

4樓:匿名使用者

變數的值取預設值,沒有變化。

5樓:網友

應該是乙個不確定的數。

c語言問題 如果我向乙個整型變數輸入字元 printf輸出的是什麼

6樓:衣苑博相義

當你輸入「12

s「時,b的值就是乙個未初始化的值,具體值要看當前棧上是什麼資料,總之就是乙個不確定的值。最重要的一點,b的值並沒有因為scanf("%d

d,&a,b);這條語句而發生變化。

你可以在定義b的地方給b乙個初始值,比如5:

inta,b=5;

然後執行程式,輸入「12

s「,你會發現輸出b的值,仍然為5.

c語言中scanf如果像乙個%d的整型變數賦值乙個字元或字串有什麼後果

7樓:網友

這個如果順利讀取到的話,字元進行acs值轉換~變成數字~

如果是字串的話~有的編譯器會讀取第乙個~有些就直接報錯出現亂碼。

8樓:最終幻想七復刻

因為你指定了%d來讀取乙個整數,scanf()函式開始每次讀取乙個輸入字元,它跳過空白字元(包含空格、製表符和換行符)直到遇到乙個非空白字元,並期望發現乙個數字字元或者乙個符號(+或者-)。如果發現乙個數字或符號,那麼就儲存並讀取下乙個字元;如果接下來的字元是乙個數字,再儲存,繼續讀取。如此持續直到遇到乙個非數字字元,此時函式認為:

已經讀到了整數的末尾。scanf會將這個非數字字元放回輸入緩衝區。這意味著:

下一次程式開始讀取輸入時,仍將從這個非數字字元開始。如果你使用多個%d讀取整數,但是你不小心在中間輸入了非數字字元,那麼除了非數字字元之前對應的變數外,後面的變數將不會被賦值。

9樓:金色潛鳥

int n;

n = scanf("%d",&x);

if (n==1) printf("成功讀入乙個整型數 ");

else printf("我失敗了,沒讀到數");

如果輸入乙個字串什麼的,存的資料是 %d 型 --因為這是你規定的 有格式 讀的 格式。你還要用 函式的返回值判斷,讀成功了沒有,讀成功才收到 整型,沒讀成功 則 x裡 沒有東西。

例如, 輸入字串是 123ab, x 讀到 123, 多餘 ab 留在輸入流中。

例如, 輸入字串是 ab123, 讀語句失敗, x 沒讀到東西。

c語言中整型變數與字元連續輸入

10樓:網友

%d與%c中間沒有空格,也是可以輸出ch的。只要輸入的時候中間沒有空格即可。

例如輸入10c

則輸出c沒有問題的。

除非你**寫的:scanf("%d%c",&a,&ch);

但是輸入的時候整數和字元之間輸入了空格。

c語言中對定義為整型的變數輸入字元會賦予該變數什麼值,謝謝

11樓:網友

不會給該變數賦值,這個整型變數的值為系統賦給這個變數的隨機值。

12樓:胡仔

乙個我們沒有辦法**的亂碼。

求c語言大神。「當從鍵盤輸入資料時,對於整型變數只能輸入整型數值,對於實型變數只能輸入實型數值」這

13樓:tt靜水深流

肯定是錯誤的,整形變數也可以輸入實形數值的。

如scanf("%d",&i); //i為int型別,你輸入浮點型會隱式轉換為整形。

14樓:把你家的哈佛

這個問題我也很是期待。 不過覺得研究沒多大意義。 如果要輸入整型資料,就給乙個提示資訊printf("請輸入乙個整數:"); scanf("%d",&a);

15樓:匿名使用者

老哥還有答案沒 給我乙份。

c語言中整型變數與字元型變數是否在任何情況下都可以互相代替?

16樓:勞秀芳冷衣

有時會出錯,因為它們的範圍不一樣,在vc++中整型佔4個位元組而字元型只佔乙個位元組,當把字元型當整型時沒問題。當把大於255的整型用作字元型時就有問題。

17樓:乙玉蘭德春

%d與%c中間沒有空格,也是可以輸出ch的。只要輸入的時候中間沒有空格即可。

例如輸入10c

則輸出c沒有問題的。

除非你**寫的:scanf("%d%c",&a,&ch);

但是輸入的時候整數和字元之間輸入了空格。

18樓:泉長征司月

字元型轉換成整型基本沒什麼問題,但反過來就可能會出問題了。因為在c語言中,整型一般是兩個位元組(int型兩個,long型4個,short

int型乙個),字元型為乙個位元組(無符號的為兩個),乙個位元組轉兩個沒問題,兩個轉乙個就可能出現溢位問題。比如。

chara=255,就會溢位,因為a表達的範圍只是-128~127

c語言怎麼用scanf輸入字串

你的意bai思是輸入多餘的字元吧?du 1 因為zhi你用scanf輸入dao的字元都是輸入到緩衝區中的,例如 內你定義了乙個只接容受乙個字元的變數ch,但卻輸入了多餘的字元,這種情況會給編譯器造成困擾,因為他並不完全智慧型,通常採用這種方法釋放掉緩衝區內多餘的字元輸入 例如 2 char ch s...

C語言問題,輸入字元az,AZ,判斷它是否母音字

int main 採納哦容 c語言中輸入乙個英文本母 判斷其是否為母音字母 用getchar輸入資料,用判斷語句判斷是否為母音字母。一 演算法分析 1 輸入乙個英文專字母 2 判斷是否為屬母音字母 3 輸出結果。二 參考 include int main include void main void...

C語言怎麼把輸入的字元分成每三個一組,然後取三個

直接個字元的拷貝不就行了。用c語言編寫乙個程式,從鍵盤上輸入個字串,輸出其中的最大者 include include define longth 定義字串最大長度void main 我以前寫的,可以執行,希望有幫助。.int strcmp const char str,const char st...