菜鸟问题,送分

allanzhou9527 2006-09-19 08:55:26
scanf("%s",str1);与scanf(" %s ",str2);会有什么区别?为什么?
其中
char str1[10],str2[10];
...全文
226 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
allanzhou9527 2006-10-11
  • 打赏
  • 举报
回复
虽然问题没有解决,也要结帖了
du51 2006-09-19
  • 打赏
  • 举报
回复
真想弄明白.要知道这是一个宏...
它从分析字符串入手的.
最终用的可能是VSCANF之类的.定不准了.肯定用VA_LIST
Heaven_Redsky 2006-09-19
  • 打赏
  • 举报
回复
函数会在输入中略去一个或者多个空白字符
直到输入非空白字符为止
这或许可以解释第二个空格后边为什么需要再输入些什么才可以
飞哥 2006-09-19
  • 打赏
  • 举报
回复
输入格式化吧
Heaven_Redsky 2006-09-19
  • 打赏
  • 举报
回复
主要是第二个空格不太好理解 呵呵
mdfy0001 2006-09-19
  • 打赏
  • 举报
回复
#include <stdio.h>

void main()
{
char str1[10],str2[10];

printf("Enter the infile name:\n");
scanf("%s %s",str1,str2);

printf("%s,%s",str1,str2);
}
----------------------------------------------------
如上:明白吗。
Heaven_Redsky 2006-09-19
  • 打赏
  • 举报
回复
格式中的空格数表示要求函数跳过输入流中的空格数
从下一个非空格字符开始输入
如果 你从开始也没输入空格 直接就输入字符串 并且最后输入回车
也是一样能把输入流倒入字符数组的
Heaven_Redsky 2006-09-19
  • 打赏
  • 举报
回复
其实 你不用输入回车 在第二个空格后边随便输入点什么 就行了
allanzhou9527 2006-09-19
  • 打赏
  • 举报
回复
楼上的能说详细点吗?
Heaven_Redsky 2006-09-19
  • 打赏
  • 举报
回复
和输入流的定义有关系的
第二种方法 要先计算空格的个数
可以理解为计数器
当把输入格式里的空格数排除完之后开始接收输入流的内容
之后 当碰到 空格的时候 再计算后边的空格数
allanzhou9527 2006-09-19
  • 打赏
  • 举报
回复
to Jokar(贪睡鼠) :
当然试过,不是很理解,所以问为什么?
重要的不是问有什么区别,是问为什么这种区别

#include <stdio.h>

void main()
{
char str1[10];

printf("Enter the infile name:\n");
scanf(" %s ",str1);

printf("%s",str1);
}

当输入“空格asdf空格”,然后回车的时候,也就是按照二楼的说法输入,还是不行,不会执行后面的输出语句;(编译环境是VC)

只有先输入一段字符,然后回车,在输入任意字符,再回车,才会执行下面的语句!

不解啊!
wzd268 2006-09-19
  • 打赏
  • 举报
回复
楼上正解
2如果不输入两个空格的话会出错的,可以自己试试
Jokar 2006-09-19
  • 打赏
  • 举报
回复
XD这种东西试一下不就知道了吗?
aminconi 2006-09-19
  • 打赏
  • 举报
回复
输入控制,方法2只接收两边带空格的字符串

70,020

社区成员

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

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