首页 > 其他分享 >一些输入问题

一些输入问题

时间:2022-11-08 17:47:12浏览次数:32  
标签:空格 字符 scanf 问题 输入 缓冲区 一些 回车

突然诈尸了hhh,现在再去看之前的博客,发现现在啥也不会了,原来自己之前学过这么多东西,现在要开始慢慢复健了,也许会继续写写博客了。
最近终于搞清楚了一些输入的问题。
有一个叫做缓冲区的东西,从键盘上输入的所有的字符都会先依次存进去,也包括空格、回车、tab之类的字符。
先说说scanf
用户先输入数据,存到了缓冲区,直到用户按下回车,这个时候程序进入缓冲区把数据取出来供变量使用。但是它会把回车这个字符保留在缓冲区里面
scanf中的%d只识别“十进制整数”,空格,回车,tab都是数据与数据之间的分隔符,scanf在缓冲区读数据的时候,会自动忽略掉空格,回车,tab这些字符,已经读取到的字符和忽略的字符就被系统释放了
scanf可以按照给定格式输入,比如oj有个这样的题
输入三个百分数,可以scanf("%d%% %d%% %d%%", &a, &b, &c);%%表示一个%字符,这样就可以按照给定格式输入进去这三个数了。
scanf输入字符时,空格,回车,tab都会被读进去。还有个这样的题

可以先scanf("%d",&n);把n输进去,这个时候缓冲区还有个空格呢,所以要getchar()把这个空格给清了,然后scanf("%c %d", &ch, &num);这个时候缓冲区还是有个空格,这个时候再getchar(),否则ch就成了'\n'
然后是cin
cin也是这个缓冲的机制,同样在输入回车之后取数据,也会把回车留下来。但是cin在输入字符的时候会忽略掉空格、回车、tab
scanf和cin读字符串遇到空格就停了,要想读一整行的话,可以用gets(),然后再处理就行了
前几天还做了个这样的题
可以这么写while (gets(s) != NULL),gets()的返回值是个指针, 对于每一组数据, gets()把一行都读进来,然后再转换成int型的数就行
暂时这些就够用了,以后如果还需要一些其他的就再补充。

标签:空格,字符,scanf,问题,输入,缓冲区,一些,回车
From: https://www.cnblogs.com/ghosh/p/16870478.html

相关文章

  • 问题 F: 零基础学C/C++176——生日相同问题
    首先题目也很明确的要求了按照日期从前到后,若日期相同,则比的是名字从短到长顺序输出,长度相同的按字典序输出。如果没有生日相同的学生,输出None。所以这题的一大难点也就......
  • 问题排查 | 客户端突如其来的“白屏”等待
    「本文选自《阿里云SRE技术期刊》2021年02月刊」移动端的混合架构模式给App开发带来了崭新的空间,通过H5构建的业务模块可以实现高效快速的版本迭代,满足多样化的业务需求......
  • Vue中实现输入框Input输入格式限制
    在开发过程中,基本都遇到过需要限制输入的情况,比如金额、仅字母数字、可输入小数位等,网上搜了很多方法也遇到一些坑,所以我把自己用的一些方法分享出来,希望对有需要的人有所帮......
  • 问题 N: 零基础学C/C++159——最长字符串
    题目一点也不难哦,就是要学会二维数组的输入输出但是不知为何这题有一个很奇怪的坑,如果你是AC:83%那么恭喜你掉坑里了!!这道题目竟然有一个检测点在最后的时候加\n确实......
  • 【AGC】云数据库Server调用接口报错“2016”问题分析
     问题背景: 开发者在服务器端的服务中集成云数据库服务的ServerSDK就可以在服务器上直接管理云侧数据库中的数据,调用它提供的接口,完成相关服务功能开发。可是有些开发者......
  • 计算机结构问题:
     最后一个寄存器时间    ......
  • 怎么用构造体输入多个数据捏?(c)
    定义结构体描述学生信息,每名学生的信息包括学号,姓名和大学英语的成绩,请编写程序输出60分以下的学生的学号,姓名和大学英语成绩信息。就拿这个例子来说吧,首先我们定义一个......
  • 问题 M: 零基础学C/C++158——删除中间的*
    思路很简单,但实现起来有点麻烦。将前面2题融合(前两题我就觉得没必要放了哈哈哈哈),保留前面与后面的*都改成删除即可。你会发现我的代码是前两个的融合。要学会融会贯通鸭:......
  • 快来测试下你的输入法正不正经 - 一个@引发的血案正在上映~
    事情是这样式儿滴~~~~在IM工具、Wiki文档中我们经常使用​​@​​​符号来做提及人、提及文档的功能,最近胡哥就是在做这个业务需求的时候被​​@​​这个符号坑惨了。PM想要......
  • 优雅解决按钮”重复点击“问题
    一、这个问题怎么解决呢?简单点,使用一个lock标记,在请求发出时上锁,上锁后就不可以再发请求,可以在请求结束后解锁:​letclickButton=(function(){letlock=falseretu......