getchar()和gets()

article/2025/10/31 22:48:44

因为最近被getchar弄的很烦所以今天中午好好梳理一下

getchar()

从缓冲区读走一个字符,相当于清除缓冲区  

前面的scanf()在读取输入时会在缓冲区中留下一个字符'\n'(输入完s[i]的值后按回车键所致),所以如果不在此加一个
getchar()把这个回车符取走的话,gets()就不会等待从键盘键入字符,而是会直接取走这个“无用的”回车符,从而导致读取有误  

下面用一个最简单的例子来解释

这里可以看到当连续输入两个字符时,如果加上回车换行,第二个人字符读入的就是\n回车符

加入getchar()把回车符给吸收时就可以正常读入输出

 

gets()

gets()函数用来从标准输入设备(键盘)读取字符串直到回车结束, 但回车符

不属于这个字符串。

gets()函数存在一个严重的缺陷,这个缺陷就是:它不会检查数组是否能够装得下输入行。

对于get(s)来说,只有回车键才是结束的标识,空格不是输入结果标识,所以用gets这个函数就可以实现输入带空格的字符串

scanf()读入遇到空格就会结束

下面举一个小例子

可以看到第二次的读入后面的world并没有读入进去

 


http://chatgpt.dhexx.cn/article/kgpe0IfG.shtml

相关文章

getAsString()和toString()区别

getAsString源码 toString()返回的是JsonElement的字符串,所有是带双引号的,eg: “hello” getAsString()返回的是JsonElement的字符串值,所以不带双引号,eg:hello

String类中getBytes()方法的使用

String是我们常用到的字符串类,今天我学习的时候需要将字符串转换为一个一个字节储存起来,查看String类的API发现其中有一个getBytes()方法,那么这个具体是怎么使用的呢? 先上测试结果吧 。 这里我们首先声明了一个byte类型的数组…

Resources中getString方法解析

在Android开发中,我们的字符串一般都是统一写在项目的res/values/strings.xml中,如果我们需要得到指定的字符串,一般使用getString方法来得到。 其实getString特别的有用,而且用法也很灵活,下面我们就来说说这个方法。…

c语言 编写getString函数(运用malloc函数,不使用数组)

定义一个返回值为char*类型的函数 定义一个char类型字符(传入)用malloc函数在堆区开辟一个新的空间存字符串定义一个char*类型指针标记字符串首地址定义一个char*类型字符串为空定义一个int类型变量计数while循环,当传入字符c不等于‘\n’时…

JavaGUI开发实践:登录界面模拟(连接数据库)

文章目录 1. 实现功能概要2. 功能界面概览3. 代码详解(1)选择身份登录方法实现(2)登录按钮的响应 4. 全部代码示例5. 包的存放位置6. 项目全部代码下载地址:JavaGUI超市进销存管理系统 所有代码7. Java GUI其他相关博客…

JavaGUI设计-计算器

.利用GUI程序设计方法实现简单计算器的设计。运行效果可设计为如下界面,也可设计为windows系统中的计算器样式。 (此程序为整数计算) 1 基础页面设计 2 流布局器使用 3 单选按钮注册监听事件 4 文本框中内容获取,数据覆盖 除法 …

Java之GUI

(本文为博主JAVA课程学习总结) GUI —— 图形化用户界面 JFC(Java Foundation Classed)是开发GUI的API集 JFC包括:AWT(Abstract Window Toolkit抽象窗口工具包)、Swing组件(建立在…

JAVA--GUI

AWT(Abstract WindowToolkit抽象视窗工具组)包括了很多类和接口,用于java.Application的GUI(Graphics User Interface图形用户界面)编程,GUI的各种元素(如:窗口,按钮,文本框等)由java类来实现。…

JavaGUI------------常用的组件(标签、按钮)

目录 1.标签 2.按钮 1.标签 类:JLabel作用:显示文本或者提示信息 构造函数: new JLabel();new JLabel(Icon icon);//设置图标new JLabel(Icon icon,int aligment);//设置图标水平对齐方式new JLabel(String str,i…

javaGUI基础知识

*注: 作者使用的是 jdk1.8.0_121 版本,可根据下方链接进行下载 jdk1.8.0_121 64位 jdk1.8.0_131 32位 1.基础界面 Frame frame new Frame(); frame.setVisible(true);2.关闭按钮监听 frame.addWindowListener(new WindowAdapter(){Overridepublic void windowClosing(Windo…

Java GUI程序示例

Java GUI程序示例 与命令行界面相比,图形界面对于用户来说更为简便易用。图形用户界面(Graphical User Interface,简称 GUI),关于Java图形用户界面,可参见 https://blog.csdn.net/cnds123/article/details…

JavaGUI界面实现跳转

页面跳转: 思路: 先定义一个类继承JFrame;定义要用的控件,再在构造方法中对定义的控件进行修改,后写出主函数,在主函数中调用构造方法。同理,在idea中,将需要跳转的几个界面置于同一…

JavaGUI显示表格(连接数据库)基础

文章目录 一、界面概览二、代码三、代码解释四、项目全部代码下载地址五、 项目代码说明六、功能更新&#xff1a;根据下拉单内容查询不同数据库6.1 界面概览6.2 用到的主要控件 七、其他相关博客7.1 <a href"https://blog.csdn.net/SKMIT/article/details/106676478&q…

Java-GUI简介

JavaSwing-GUI开发简介&#xff08;1&#xff09; 本期介绍一些GUI的基本知识&#xff0c;开发GUI程序的时候直接用windowbuilder生成框架&#xff0c;傻瓜式拖拽就行&#xff0c;非常简单。 一、布局管理器 1.1:FlowLayout(流式布局) 1.2:GridLayout(网格布局) 1.3:Grid…

Java:GUI编程

文章目录 GUI编程AWT一、AWT介绍二、组件和容器(Component和Container)2.1.Frame2.2.Panel 三、布局管理器3.1.第一种布局管理器——FlowLayout3.2.第二种布局管理器——BorderLayout3.3.第三种布局管理器——GridLayout&#xff08;表格布局管理器&#xff09;3.4.布局练习 四…

Java GUI编程

GUI&#xff08;Graphical User Interface&#xff09;即图形用户界面&#xff0c;它能够使应用程序看上去更加友好。 Swing概述 Swing是纯Java组件&#xff0c;使得应用程序在不同的平台上运行时具有相同外观和相同的行为。 Swing中的大部分组件类位于javax.swing包中。 Sw…

Java GUI入门教程

人生的烦恼&#xff0c;多在于知道的太多&#xff0c;而做的太少。 Java程序中开发GUI页面。下面我主要对Java中实现图像管理、图形绘制和颜色管理等做出介绍&#xff0c;与此同时&#xff0c;Swing包也做出一部分介绍。 像素与坐标 用于表示图像像素数目的称为图像分辨率。显…

【JAVA】GUI编程

GUI的概念 Swing概述 容器组件 布局管理器 常用组件 事件处理 对话框 GUI的概念 GUI&#xff08;Graphical User Interface&#xff09;即图形用户界面&#xff0c;它能够使应用程序使用起来更加便捷&#xff0c;看上去更加友好。 Swing概述 Swing是纯Java组件&#xff0c;使得…

Java--GUI编程

目录 GUI的概念 Swing概述 ​编辑 容器组件 布局管理器 常用组件 对话框 内部类 GUI的概念 GUI&#xff08;Graphics User Interface&#xff09;&#xff0c;图形用户界面&#xff0c;是指采用图形方式显示的计算机操作用户界面&#xff0c;是计算机与其使用者之间的…

GUI编程(java)

1 GUI的概念 GUI&#xff08;Graphical User Interface&#xff09;即图形用户界面&#xff0c;它能够使应用程序看上去更加友好&#xff0c;更加方便用户操作。 2 Swing概述 Swing是纯Java组件&#xff0c;使得应用程序在不同的平台上运行时具有相同外观和相同的行为&#x…