第1章之編程練習心得20140703

其實用C用了幾年了,大多數是單片機C語言。C語言的好書也看過幾本,但是感覺對C精通還得走很長的路。從C和指針開始,從博客開始,堅持把這本書的每道題都做一遍思考一遍,不管再簡單的語句也要敲一敲,覺得重要的,經常遺忘的也寫下來。

#define MAX_INPUT 100UL
void main()
{
int quantity,price;
unsigned char department[MAX_INPUT]=" ";
scanf("%d,%d,%s",&quantity,&price,&department);//note that , is needed when input from keyboard,if there is no ',',then ','is not needed(space enter to 
//scanf("%s",&department);//seperate the adjacent characters
printf("%d,%d,%s \n",quantity,price,department);
//printf("%s\n",department);
}

說實話,除了大一時經常用到scanf,以後幾乎就沒用到了。scanf是從標準輸入流stdin(標準輸入設備,一般是鍵盤)中讀取內容的通用子程序,可以依次讀取多個字符,並保存在對應地址變量中。

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

1 如果ab都成功讀入,返回值就是2,;

2 只讀取一個,返回值是1;

3 都沒有讀取,返回值0;

4 如果遇到錯誤或者end of file,返回值爲EOF;

       scanf("%d,%d,%s",&quantity,&price,&department);注意如果格式控制符項之間有逗號的話,鍵盤輸入時要用 逗號 隔開,如果沒有逗號,輸入時用 空格,回車鍵或tab鍵隔開。

      我調試時遇到一個很奇怪的問題,字符串讀不進來。前兩個quantity和price可以正常讀入並打印。後來發現,我的輸入法默認是中文,在輸入數字時,中文狀態的逗號會被自動變爲半角字符逗號,這個我是注意到了,但是在輸入字符前的逗號沒有變爲半角字符逗號,而且此時字符前多出了一個空格,要知道如果scanf遇到空格會認爲賦值結束的。這就是問題所在。在輸入前切換到英文輸入法,就沒有這個問題了。還發現,如果連續輸入數字,逗號會自動變爲半角字符逗號。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章