1. 程式人生 > 其它 >JDK SPI入門程式

JDK SPI入門程式

scanf函式缺陷及解決方案

C變數
Char:位元組型資料,一個char型佔一個位元組,在命名時用英文單引號引起來。
Int:整形資料,佔4個位元組(一個位元組佔8個bit位)
Float:單精度資料,佔4個位元組。
Double:雙精度資料,佔8個位元組。
.輸出輸入
輸出函式:printf,printf函式可以輸出不同型別的資料,如整型,float,double,char等,其一般格式為:printf(“%?”,??);
他的意思時把??的數值給%?這個佔位符,從而達到輸出??資料的目的。
輸入函式:scanf函式是輸入資料的C語言標準函式其一般格式:scanf(“%?”,&??);”&”是取地址運算子,取出要輸出資料的地址,把從緩衝區讀取的資料存放在取出的地址中,完成資料的輸入。

**注:**scanf有他的侷限性,當在一個輸入之後還有一個輸入字元型的scanf,這時候第一個scanf把從緩衝區讀出的資料給第一個字元變數,但是scanf遇到回車就會停止輸入,從而使緩衝區的剩餘回車鍵順理成章的給了下一個字元變數使得輸入出現錯誤。

#include<stdio.h>
int main(){
        char a;
        char b;

        printf("input a:\n");
        scanf("%c",&a);

        printf("input b:\n"
); scanf("%c",&b); int c = (int)(a+b); printf("c = %d\n",c); 執行結果


根據上側程式碼可以看出執行結果(在linux環境下用gcc編譯然後執行)沒有有效的輸入b的值,為解決這類問題可以在scanf輸入之後加入一個getchar()函式來吸收回車符號。