关于scanf格式化输入函数的小问题
2017-08-28 23:43
246 查看
今天遇到一个scanf格式化输入的问题,之前还没意识到.当连续输入不同类型的数据时,如scanf("%d%c%s%d",&a,&b,c,&d);(其中c为char型数组,不需要取地址),输出结果不符合预期猜想. 问题代码: #include<stdio.h> struct student { int a; char b[20]; char c; int d; }st; int main() { scanf("%d%s%c%d",&st.a,st.b,&st.c,&st.d); printf("a=%d \nb=%s \nc=%c \nd=%d\n",st.a,st.b,st.c,st.d); putchar('\n'); return 0; }
思考: scanf函数输入多个数据时最好使用空格做下间隔,这样方便区分.但是在使用scanf输入字符串时,空格会被默认为字符串之间的分隔符,最终输入到字符串中的只有空格前的数据.同样scanf函数在遇到不按指定格式输入时会自动结束. 更正代码: #include<stdio.h> struct student { int a; char b[20]; char c; int d; }st; int main() { scanf("%d %s %c %d",&st.a,st.b,&st.c,&st.d); printf("n = %d\n", n); printf("a=%d \nb=%s \nc=%c \nd=%d \n",st.a,st.b,st.c,st.d); putchar(10); return 0; }
相关文章推荐
- 关于scanf函数的输入类型不匹配问题
- 处理格式化输入函数scanf遇空格停止问题
- 关于用连续用多个scanf函数输入数据时前面的scanf函数会在缓冲区留下回车符的问题
- 格式化输入(scanf)输出(printf)函数
- C语言scanf()函数:格式化输入函数
- 格式化输入函数scanf
- c中scanf的格式化输入函数
- 关于scanf函数的问题
- 格式化输入函数scanf()及输入输出函数的*修饰符
- scanf()函数连续输入数字,字符引发的小问题
- 九度1006 关于用cin和scanf的%s格式符输入字符串的问题
- Scanf函数的输入问题
- C语言scanf函数输入时键盘缓冲区\n的问题
- 关于fflush(stdin)的使用与scanf输入缓冲区的问题
- scanf_s()函数—帮你解决带有空格的字符串的输入问题
- 关于fflush(stdin)的使用与scanf输入缓冲区的问题
- 关于解决Spring中格式化日期输入输出问题
- 关于c语言的输入函数问题
- 关于vs2013等编译器scanf函数不能使用的问题
- C语言scanf()函数:格式化输入函数