由一道题引发的关于输入输出的总结

这道题要求输入的形式如下

abc def

dfs deddf

.....


def

deff

上面用一个空行表示输入的结束。然后开启下面的输入。怎么解决这个问题呢?

先说说scanf():scanf可以用来输入各种数据类型的变量,自动忽略末尾的回车符。但是scanf的一个问题就是对于scanf("%s%s")这种,字符串间不能有空格

如果想要把空格也输入进去,必须用到gets()

getchar()函数能够吸收回车换行符

那么对于这个问题

while(gets(ch))

{

  if(ch[0]==0)

    break;

 sscanf(ch,"%s%s",s1,s2);

}

这个sscanf干什么的呢?

从一个字符串中读进与指定格式相符的数据。

比如

      char buf[512] = ;
  sscanf("123456 ", "%s", buf);
  printf("%s\n", buf);
  结果为:123456

      sscanf("123456 ", "%4s", buf);
  printf("%s\n", buf);
  结果为:1234

那么上面就是把ch得到的内容交给s1,s2。因为中间有空格作为分隔符,自然就可以把ch分开成两个字符串了。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值