c语言中怎样用scanf()读入带空格的字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中怎样用scanf()读入带空格的字符串相关的知识,希望对你有一定的参考价值。

现在gcc中gets()不让用了,可以使用
char str[100];
fgets(str,100,stdin);//stdin键盘输入
fputs(str,stdout);//输出

或者:
char str[100];
scanf("%[^\n]",str);//遇到\n换行符停止
printf("%s\n",str);输出
参考技术A scanf遇到空格就会结束,所以读不到带空格的字符串
使用gets()可以解决,gets会把空格读进来,遇到回车符才会结束
参考技术B 使用双引号来试试

~
参考技术C http://blog.csdn.net/luxuejuncarl/article/details/1576513
这个博客里有关于scanf的用途详解

怎样检查C语言输入数据的合法性?

1.
通过scanf函数的返回值来验证输入的合法性。
2.
scanf()函数接收输入数据时,遇以下情况结束一个数据的输入:(不是结束该scanf函数,scanf函数仅在每一个数据域均有数据,并按回车后结束)。
  ①
遇空格、“回车”、“跳格”键。
  ②
遇宽度结束。
  ③
遇非法输入。
3.
scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。
如:
scanf("%d
%d",&a,&b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end
of
file,返回值为EOF。
且返回值为int型.
参考技术A 如果是整数的话,
这么判断就行:
float
num;
int
num2
scanf("%f",&num);
if(num==(int)num)
num2=(int)num;//如果输入正确,将整数保存到num2中
else
printf("EOF");
参考技术B 我在编程的过程中需要输入整数,如何检查输入数据的合法性?如果合法则继续如果是整数的话,这么判断就行:
float
num;
int
num2
scanf(

以上是关于c语言中怎样用scanf()读入带空格的字符串的主要内容,如果未能解决你的问题,请参考以下文章

C语言用如何用scanf输入带有空格的字符串

为啥不能用scanf读入一个含有空格的字符串

c语言,怎样输出有空格的字符串?

c++第二遍scanf读入问题

java怎样读取带空格的字符串数组

C 不能输入带空格的字符串