1.234被截断了,输入说白了就是输入一串字符,scanf只是根据格式控制符来处理这些字符,你输入1.234,按%d,整型读取到.时为非整型数字,所以直接截断,因此你缓冲区中还留有.234这几个字符
引用 1 楼 Italink 的回复:1.234被截断了,输入说白了就是输入一串字符,scanf只是根据格式控制符来处理这些字符,你输入1.234,按%d,整型读取到.时为非整型数字,所以直接截断,因此你缓冲区中还留有.234这几个字符那请问为何我输入字符c,scanf为何读入的不是c的ascll码99,直接读取失败呢?
//请今后要用 char c; scanf("%c",&c); //时,都改为 char s[2]; char c; scanf("%1s",s); c=s[0]; //自动跳过一个或多个空格或Tab字符或回车换行,读取下一个字符。
69,374
社区成员
243,079
社区内容
加载中
试试用AI创作助手写篇文章吧