關於C語言輸入的一些問題,C語言輸入問題

2023-02-20 03:10:21 字數 1886 閱讀 9280

1樓:

%*c的作用是不接受剩餘字元,利用scanf函式以空格,回車,tab結尾,但這些字元沒有付給任何變數,被放在緩衝區裡,如果再次呼叫scanf函式的話,可能這些資料直接輸入到記憶體,但這些並不是我們所想要的,所以在後面加個%*c,就可以把這些資料從緩衝區消除,舉個例吧

scanf("%d",&i);

scanf("%c",&a);

第一次輸入一個整數,比如1,然後回車,本想第二次輸入一個字元給a,可a已經接收了第一次輸入的字元回車符,如果改為

scanf("%d%*c",&i);

scanf("%c",&a);

那就不會有什麼問題了!

2樓:步利佳

作用:這裡主要是表示輸入項在讀入後不賦給任何相應的變數,這裡主要是考察輸入格式的問題,你可以先去掉%*c後,

執行 如直接輸入2a5 程式執行沒錯(看好要將輸入的幾個字元連起來不能有空格)執行沒有問題。

但加上是你執行時,會有錯,這是要輸入的應該是2*a5*(*表示任意字元)

呵呵 就是這樣的

3樓:匿名使用者

記得是用來跳過指定列數用的,就是在出現%*的地方讀取的幾個值(你這裡應該是一個吧),然後並不將這幾個值賦給相應的變數。這個知識點老譚的書上記得有說明,scanf()的格式說明那塊吧。

c語言輸入問題

4樓:

%1c、%2c、%3c 分別對應於輸入的 a、□b、c□d,取第一個字元。

關於c語言的輸入問題

5樓:匿名使用者

int num;

char ch;

scanf("%c", &ch);

if (ch == 'a')

scanf("%d", &num);

// 這樣就好

c語言 關於得到輸入的問題

6樓:c_walk小三

#inlcude

void main()

{int i,j,a[1000];

scanf("%d",&j);        //輸入個數jfor(i=0;i

7樓:匿名使用者

指標。。。。。。。。。。。。。。。。。

關於c語言輸入輸出問題

8樓:匿名使用者

這得從c語言的記憶體機制談起,假定你用的intel的cpu,console下編譯這段程式。

int a = 0xaabb 在記憶體中儲存是 &a的地址 bb aa 方式儲存。

你用 scanf("%c",&a); 相當於 向 bb 寫入一位元組,但是aa的值由於沒有被初始化,是不確定的,如果你運氣不好,aa不是零,那麼輸出的就不是 asc碼了。

當你用 a = 1 進行初始化後相當於將 aa 設定成了 0,所以輸出的是 字元的ascii碼。如果你把 a 初始化成 大於255的數字,你再看看,還是不對。

所以,根本的問題是你的程式寫的不對,應該是:

char a;

9樓:匿名使用者

a是int型別的,所以scanf輸入時應以%d的方式接受鍵盤輸入的值

printf裡的%d說明輸出形式是整型的方式

10樓:匿名使用者

%c =char

%d =int

%ld=long int

%s=string (字串)

11樓:呂功建

記憶體中是以2進位制存的

C語言的一些問題,在C語言程式設計中應該注意哪些問題

8.標準的c不能再變數定義時初始化,而c 鼓勵這樣做,c中的常量必須在專定義是初始化屬。所以d 對。a 和c 是c 中陣列定義是的初始化,b 不對。15.d 對。ar是新型別名,a是變數名 2.int main while i 100 printf sum d n sum d d最後一題可以在網上找...

c語言關於字串輸入的問題,一個C語言字串輸入問題

有明顯的致命錯誤 c語言字串輸入時,不要加地址符號 因為陣列名就表示地址。for int i 0 i 2 i 另外再加個標頭檔案 include c語言中比較兩個字串是否相等,不能直接比較if stu j name nm 應改成if strcmp stu j name,nm 0 if stu j n...

關於c語言的問題,關於C語言的問題。

題1 include int main 題2 include int main 題3 include int main 第1個題目 就是判斷while 括號裡面的值是否為真,因為加了個!所以 k 0 n 為真時while裡面的判斷語句就為假,因為 為邏輯與,就是判斷 兩邊的式子是否為真,當k 0為真...