scanf的空格读入问题

outiejun 2003-10-13 12:39:42
char input[41];
scanf("%s",input);

我想输入一个带空格字符串,例如:die hard vendeta

但是输入之后读出input数组的值,第一个空格后面的值均为空,怎么回事?我该怎么解决?
...全文
149 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
daizh 2003-10-13
  • 打赏
  • 举报
回复

#include <stdio.h>

void main( void )
{
char line[60];

printf( "Input a string: " );
gets( line );
printf( "The line entered was: %s\n", line );
}
playboyxp 2003-10-13
  • 打赏
  • 举报
回复
不要用scanf()输入
用gets()直接输入字符串
outiejun 2003-10-13
  • 打赏
  • 举报
回复
但是gets不能中断程序吧
我不懂电脑 2003-10-13
  • 打赏
  • 举报
回复
#include <stdio.h>

int main(void)
{
char string[80];

printf("Input a string:");
gets(string);
printf("The string input was: %s\n", string);
return 0;
}
daizh 2003-10-13
  • 打赏
  • 举报
回复
用getline()函数。
wxtp 2003-10-13
  • 打赏
  • 举报
回复
用gets()
短歌如风 2003-10-13
  • 打赏
  • 举报
回复
不要用gets,它没有长度保护,无法应付用户输入过长的问题——将导致越界访问。
应该用fgets:
#include <stdio.h>

void main( void )
{
char line[60];

printf( "Input a string: " );
fgets(stdio, 60, line);
printf( "The line entered was: %s\n", line );
}

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧