一些不知的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>字符缓冲的问题见 输入、输出缓冲区

相关文章
相关标签/搜索