為什麼C語言中要用「scanf」

2022-09-09 12:05:24 字數 2167 閱讀 3686

1樓:

要耐心看啊!別看字多,容易讀的!!!要分成3段讀,不要一口氣看完!

1.scanf就是輸入一個數然後回車結束。聽不懂不好意思、別理他

舉個例子:

int i;    //定義i

然後我們提示使用者輸入,

printf("請輸入一個數:");

接著,我們使用scanf("%d",&i);

輸入完數後,我們跟使用者說聲你剛才輸的數

printf("您剛才輸入的數是%d",i);

分析:首先定義int i是沒有問題要問的。

之後用printf也是沒有問題要問的,要問的是在printf之後。

電腦執行到printf看到後面的scanf函式,便停了下了,等待使用者輸入。所以在一個c語言程式裡,

有scanf函式就要停下來等待使用者輸入。但是使用者輸入完後要怎麼跟電腦說:」我輸入完了「?

就是用scanf函式本身要按回車鍵的功能。

scanf函式意思」總結「:電腦碰到scanf要停下,等待使用者輸入,使用者輸入後按回車告訴電腦輸入ok,電腦繼續執行下面的**。

樓主你說的沒有設定,是不可能設定的。

2.這個問題簡單。

scanf("%d",&i);

首先我們輸入88,這之後一個空格,很好,你沒有用回車鍵告訴電腦,而是用空格鍵。

88之後空格,然後不管你輸入多少,比如88 544還是88 9990,或者在一個空格88 878 897

這些數字裡,翻譯器只取88,為什麼呢?其實空格和回車差不多,講講區別吧!

空格:我們輸入空格之後,可以繼續輸入數字,不管是多少,都可以。

回車:而我們輸入回車後,電腦就立即把回車鍵之前你所寫的看做數,就如,88然後回車,電腦把回車之前的88看做使用者所輸入的數。但是,如果包含空格鍵,直接把後面的數省略!就如:

88 99,88後面有空格,空格和99將被忽略。

講了這麼多,總而言之,輸入88,然後按空格的時候,電腦已經把88看做一個數了,所以後面的99是另一個數,所以不寫入&i。

擴充套件知識:如果要輸入倆個數甚至n個數,**如下:

#include "stdio.h"

main()

int i;

int a;

pirntf("請輸入倆個數(輸入第二個數用空格鍵隔開!)");

scanf("%d %d",&i,&a);

printf("這倆個數分別是:%d和%d",i,a);

3.上面已經說了,空格和回車差不多個功能,按空格時電腦把前面所輸入的看作是數,

例如輸入88然後空格,然後99,空格前的88已經賦給i了,99不能賦值,直接忽略。

不過,樓主是空格空格,但是空格之前沒有使用者所輸入的,等於沒有。所以給88.

如果是新手,可以看擴充套件知識,裡面有一個錯誤,大家去找找;如果是高手,就可以忽略這個錯誤。

2樓:愛水有水

這是c語言函式庫中有的,c語言本身並不提供輸入輸出語句,輸入和輸出操作是由c函式庫中的函式來實現的。

3樓:匿名使用者

這個是他系統規定的。如果你自己有能力,自己做個軟體什麼你也可以給他規定個東西,正所謂我的世界我做主。

4樓:匯錦大黑豬

scanf函式,與printf函式一樣,都被定義在stdio.h裡有興趣的去找到這個標頭檔案看看哦

scanf(格式控制,地址表列)

格式字元說明說下:

%a,%a 讀入一個浮點值(僅c99有效)%c 讀入一個字元

%d 讀入十進位制整數

%i 讀入十進位制,八進位制,十六進位制整數

%o 讀入八進位制整數

%x,%x 讀入十六進位制整數

%c 讀入一個字元

%s 讀入一個字串,遇空格、製表符或換行符結束。

%f,%f,%e,%e,%g,%g 用來輸入實數,可以用小數形式或指數形式輸入。

%p 讀入一個指標

%u 讀入一個無符號十進位制整數

%n 至此已讀入值的等價字元數

% 掃描字符集合

%% 讀%符號

5樓:

scanf是輸入的意思!

printf是輸出的意思!

6樓:匿名使用者

這沒啥為什麼,就跟你學英語時候的固定短語,沒人說為什麼,就是這麼規定的,記住就好

c語言中scanf和fputc不能同時用在for迴圈中

你確定這個程式能跑起來?c根本就是沒有宣告的變數。用c語言進行程式時同時使用for迴圈和scanf輸入多個結構體資料時一直出問題 附上兩張圖 5 for和scanf有直接的關係嗎?用不用迴圈,你需要的輸入的資料量都不會改變?c語言中for語句中的表示式一能不能寫scanf語句呢?for scanf ...

c語言中用scanf輸入雙精度浮點數

c語言中用scanf輸入雙精度浮點數的源 如下 include include int main int n,a,i printf 請輸入陣列長度 scanf d n a malloc sizeof int n 分配記憶體 printf 請輸入 d個數 n n for i 0 i n i scanf...

scanf函式c的問題,c語言scanf函式格式問題

首先scanf應該這樣用 scanf 格式化字串 變數地址 你的用法是錯誤的 c 只從輸入緩衝裡讀一個字元,但是你在輸入的時候不只一個字元,剩下的字元 包括回車 就留給第二個 c 了 解決方法 printf y or n?scanf c n a fflush stdin printf y or n?...