C 不能输入带空格的字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C 不能输入带空格的字符串相关的知识,希望对你有一定的参考价值。
我知道用gets()
但是
printf("Student %d:\n",i+1);
printf("ID:");
scanf("%d",&p1->id);
printf("Name:");
gets(p1->name);
printf("Score:");
scanf("%f",&p1->socre);
这里就是不管用!!!!!!
空格后SCORE就不能输入自动跳过!!!!!为什么!
scanf("%d",&p1->id);
修改为:
scanf("%d%*c",&p1->id);
加%*c,是为了略过输入id时的回车符号,因为这个回车符号影响gets(name) 参考技术A printf("Student %d:\n",i+1);
printf("ID:");
scanf("%d",&p1->id);
printf("Name:");
fflush(stdin);
gets(p1->name);
fflush(stdin);
printf("Score:");
scanf("%f",&p1->socre);
调用fflush。
以后你就知道了,现在不想在这里做过多解释! 参考技术B 用getline函数试试看,有些程序以空格符作为一个单词的结束 参考技术C 在scanf的下一句加一个gets()
就可以了
VS 中输入带空格的两个字符串
此博客链接:https://www.cnblogs.com/ping2yingshi/p/12364412.html
问题描述:vs中读取两个字符串,中间用空格分开。例如:abcde a3。
解决方法:
在变量后面添加定义的字符串数组长度。
例如:
while (~scanf_s("%s %s", huabutiao,1000, minshitiao,1000)){}。
写同样的一个程序,当输入带空格的字符串时,VS中需要多加一个参数。
DVV-C++ 和VS中输入带空格的字符串对比如下:
DVV-C++中:
while (scanf("%s%s", huabutiao, minshitiao)){}。
VS中:
while (~scanf_s("%s %s", huabutiao,1000, minshitiao,1000)){}。
以上是关于C 不能输入带空格的字符串的主要内容,如果未能解决你的问题,请参考以下文章