一些不知的scanf問題

scanf("格式化字符串",地址列表);ios

   <1>若是scanf產生了錯誤,那麼返回0ide

   注意:spa

   <1>scanf尋找數據起始位置時,跳過空白字符(空格、回車、製表符等),即遇到空白符認爲結束一次輸入操做字符串

   <2>scanf中%e、%g、%f能夠互換it

   <3>scanf從左往右依次分析格式字符串。若是遇到一個不符合的字符,就把這個字符放回,下次再讀io

   如:class

   1-20.3-4.0e3stream

   %d%d%f%f數據

   i = 1tab

   j = -20

   x = 0.3

   y = -4.0e3

<2>scanf不會讀取最後的換行符,因此有時候用scanf("%*c")將換行符讀出,防止後面的讀取

   如:

   printf("請輸入c1:");

   scanf("%c",&c1);

   printf("請輸入c2:");

   scanf("%*c");

   scanf("%c",&c2);

<3>scanf("%*[^\n]");

   *表示忽略讀取到的內容

   [^\n]:任何非\n的字符,將任何\n的字符所有讀走

   i和d再printf和scanf中的區別:

   <1>printf中沒有區別

   <2>scanf中d只能匹配十進制數字;i能夠匹配八進制 十進制 十六進制

<4>組織格式化輸入輸出字符串:

   fprintf(&iostream, "格式化字符串", 表達式列表);

   fscanf(...);

   &iostream:能夠是stdout/stdin

<5>字符緩衝的問題見 輸入、輸出緩衝區

相關文章
相關標籤/搜索