scanf函式:格式化輸入函式,即按控制字串內指定的各種格式,從鍵盤上把資料輸入到指定的變數之中。
格式:int scanf( const char *format [,argument]... );
a)與printf相同之處是:控制字串內的每個%後面必須跟乙個控制字元,引數列表中的引數都必須與控制字元的個數和型別相匹配
b)與printf的不同之處是:scanf的引數列表中,每乙個變數之前都必須要帶上取位址符號(&)。代表要將引數列表中所有變數的位址一一傳遞給系統,作業系統要按照給定變數的位址,將使用者輸入的資料傳遞給引數列表中每乙個對應的變數。(只有陣列變數可以不用取位址,因為陣列變數自身就是乙個記憶體位址。
而printf的引數列表中,所有變數是不用取位址直接代入的。如果scanf函式像直接代入變數不取位址,執行時會因資料送錯位址造成整個程式崩潰。
c)另外一點與printf不同之處是:scanf的控制字串內除了控制字元以外,只能指定間隔符空格或逗號。
不能像printf函式那樣,隨意在控制字元之間夾雜其他的文字。
格式:int getchar(void);
int c = getchar();
b)等價於:int c=getc(stdin)
c)也等價於:
int c;
scanf(「%c」,&c);
以上三中形式單獨呼叫時,最好在之前呼叫乙個函式來清理輸入流:fflush(stdin);
否則,可能獲取不到新輸入的內容,而是獲得了上一次輸入時的回車符。
五:簡單串輸入輸出函式:
gets函式:從stdin流中讀取字串,類似於scanf(「%s」,&x);。
puts函式:用來向標準輸出裝置寫字串並換行,類似於printf(「%s」,x);
a)在printf函式的控制串內,%符號與控制符之間的數字是用來控制佔位的。
例如:printf(「%8.3f」,34.678f);
8代表包括小數點總共占用8個空位,.3代表保留3位小數列印。
b)%之後帶-符號代表在所占用的空間內左對齊,預設不帶-符號是右對齊。
例如:printf(「**=%-8.3f」,34.67f);
還是占用8個空位但是,與前面不同之處是左對齊。
c)如果%後面是0.x代表不占用多餘空位,只控制保留的小數字。
例如:printf(「**=%0.3f」,34.6f);
以上是printf函式對於浮點數的佔位和對其管理。
d)對於整數和字串輸出只有佔位控制和對齊控制,沒有小數點後面的控制。
例如:printf(「學號:%-8d姓名:%-10s」);
8和10代表的是佔位管理,-符號代表左對齊,預設不帶-符號是右對齊。
a)單字元輸入輸出:
getchar、getc函式: c=getchar();等價於scanf(「%c」,&c) ;
putchar、putc函式:putchar(c);等價於printf(「%c」,c);
b)單行輸入輸出:
gets函式:gets(str);等價於scanf(「%s」,str);
puts函式:puts(str);等價於printf(「%s」,str);
c)格式化輸入輸出:
printf包括:%d、%u、%x、%c、%s等等。
scanf包括: %d、%u、%x、%c、%s等等。
d)佔位控制:
對於整數和字串在%和控制符之間的數字代表佔位,負號代表左對齊。
對於浮點數除了用數字代表佔位,負號代表左對齊,還有小數字數的管理。
JS輸入數字與小數
js判斷只能是數字和小數點 1.文字框只能輸入數字 小數點也不能輸入 2.只能輸入數字,能輸小數點.3.數字和小數點方法二 4.只能輸入字母和漢字 5.只能輸入英文本母和數字,不能輸入中文 6.只能輸入數字和英文chun 7.小數點後只能有最多兩位 數字,中文都可輸入 不能輸入字母和運算符號 57 ...
delphi edit 只輸入數字 只輸入字母
在delphi中使用編輯框時,有時需要限制輸入它的字元型別,如只接收數字或只接收字母。我們可以在tedit元件的on.keypress事件中對輸入進行處理,以限制對編輯框的輸入。限制為只接收數字的例程如下 procedure tform1.edit1keypress sender tobject v...
delphi edit 只輸入數字 只輸入字母
在delphi中使用編輯框時,有時需要限制輸入它的字元型別,如只接收數字或只接收字母。我們可以在tedit元件的on.keypress事件中對輸入進行處理,以限制對編輯框的輸入。限制為只接收數字的例程如下 procedure tform1.edit1keypress sender tobject v...