在c语言中,进行scanf("%s%d%d",a,&b,&c); 时发现输入tom 23 34 再

在c语言中,进行scanf("%s%d%d",a,&b,&c);
时发现输入tom 23 34 再在c语言中,进行scanf("%s%d%d",a,&b,&c);
时发现输入tom 23 34 再按回车可以进行分别把tom,23,34赋给a(字符串),b,c。可让我疑惑的是字符串不是可以含有空格吗(s="tom smith"这种),如果需要字符串中含有空格怎么办

用scanf来输入的话,不能输入空格,遇到空格会被当成字符串结束标志,如果要输入还空格的字符串,常规的做法是用gets函数。代码改成如下:
gets(a);
scanf("%d%d",&b,&c);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-12-24
scanf不能读入含空格的字符串。如果需要含空格的字符串,可以使用
gets(),读入一行
getchar(),每次读入一个字符,然后自己存储成字符串。