首页 > 其他分享 >字符专用输入输出函数 getchar() putchar()

字符专用输入输出函数 getchar() putchar()

时间:2024-08-04 23:27:48浏览次数:11  
标签:字符 arr putchar 函数 输入输出 printf 接收 getchar

文章目录


提示:以下是本篇文章正文内容,下面案例可供参考

一、字符专用接收函数

在c语言中,想要输入字符有两种方法,第一种是scanf函数输入字符,第二种则是字符专用接收函数

1.1 scanf实现字符接收

关于scanf的具体详细的使用方法可以看小编所写的详解printf和scanf

int main() 
{
	char arr; 
	scanf("%c", &arr);#   
	printf("%c",arr);   
	return 0;   
}

在这里插入图片描述

1.2 字符专用接收函数getchar

getchar定义

在这里插入图片描述

在这里插入图片描述

代码演示

int main()
{
	char arr;
	arr = getchar();
	printf("%c",arr);
	return 0;
}

在这里插入图片描述

注意

  • 字符专用接收函数一次只能接收一个字符,如果输入多个字符只获取第一个字符。
  • 字符接收函数没有参数,字符接收函数是从键盘上获取字符值。

1.3 练习

键盘上输入hello,输出是什么字符?

int main()
{
	char arr;
	arr = getchar();
	printf("%c",arr);
	return 0;
}

在这里插入图片描述

1.4 利用循环使字符接收函数接收字符串的元素

在这里字符接收函数,一次只能接收一个字符,如果想要接收字符串,我们可以用到循环

int main()
{
	char arr = '0';
	do
	{
		if(arr != '\n')
		{
			arr = getchar();
			printf("%c", arr);
		}
	} while (arr != '\n');
	return 0;
}

分析

do while循环条件是获取当前的字符,所以他的结束条件是输入的该字符串函数不是换行符(’ \ n’),因为我们在输入一个字符串以后,我们会按下回车键,按下回车键,获得的当前字符为换行符,所以我们获得不是换行符的时候,才说明我们还没有获取结束,如果我们获得当前字符是回车符,那就说明字符串的字符还没有获取结束。所以在这里我们输入一组字符串,先是接收第一个字符,然后打印,判断不是换行符,然后我们在获取下一个字符。

疑问

为什么我们使用getchar接收字符串进行循环打印,为什么能全部打印出来,而不是每次打印第一个字符呢?字符接收函数不是接收一个字符么,为什么还能打印出后面所有的字符呢?

这是因为scanf和getchar并不是直接从键盘上拿数据,而是存在一个缓冲区域,然后getchar从缓冲区域一个一个进行拿值,直到所有值拿完,我们这里拿完第一个字符元素后,缓冲区域还剩下剩下的字符元素,而之前的元素被读走了,不会在存在于缓冲区域,所以可以使用循环接收所有的字符而不是只接收第一个。


二、字符专用输出函数

2.1 printf实现打印字符

关于printf具体详细的使用方法可以看小编所写的详解printf和scanf

int main()
{
	char ch = getchar();
	printf("%c",ch);
	return 0;
}

在这里插入图片描述

2.2 字符专用输出函数putchar

putchar定义

在这里插入图片描述

代码演示

int main()
{
	char ch = getchar();
	putchar(ch);  
	return 0;  
}

在这里插入图片描述

注意

  • 字符专用输出函数一次只能输出一个字符,如果输出多个字符只输出第一个字符。

  • 字符输出函数有参数,字符输出函数参数是字符表达式 (变量,或者字符)。
    在这里插入图片描述
    在这里插入图片描述

  • 使用方法和getchar一样,使用循环输出原理和getchar一样都是从缓冲区域进行输出。

标签:字符,arr,putchar,函数,输入输出,printf,接收,getchar
From: https://blog.csdn.net/weixin_62168696/article/details/140882439

相关文章

  • 实现一个终端文本编辑器来学习golang语言:第二章Raw模式下的输入输出
    从第二章开始,在每个小节的最后都会有一些代码实操作业,你可以选择自己完成(比较推荐),再对照我的实现方式,当然也可以直接看我的代码实现。不过,之后的各个功能实现,我都会基于我先前的代码实现版本,在它的基础上进行扩展。首先,我们先来解决第一章遗留的第一个问题:输入数据会被stdin缓存......
  • 6.C基础_输入输出函数
    putchar功能:输出一个字符函数声明:intputchar(intc);返回值:参数c的ASCLL码值c:要输出的字符,可以为字符常量、字符变量或表达式注意点:输出的结果不带'\n'getchar功能:从键盘读一字符函数声明:intgetchar(void);返回值:获取数据的ASCLL码值,当输入ctrl+d时会退出获取,此......
  • C++语法基础之输入输出(易理解巨详细)
    Unit1C++语法基础之基本输入输出本次分享属于C++语法基础系列课,标准输入输出的理解和使用C++语法基础之输入输出标准输入输出介绍(一)输入输出流(概念比较抽象,可先理解代码,回头进行理解性记忆)1、概念2、输入流(InputStreams)3、输出流(OutputStreams)(二)标准输出1、输......
  • C++入门基础—(命名空间,输入输出,缺省参数,函数重载)
    目录1.1 C++发展史1.2C++版本更新1.3C++学习参考文档1.4C++的第一个程序2命名空间2.1命名空间的价值2.2namespace的定义1.命名空间中可以定义变量/函数/类型2.命名空间可以嵌套3.多⽂件中可以定义同名namespace,他们会默认合并到⼀起,就像同⼀个namespace⼀......
  • 【C语言】输入、输出函数知识、getchar()、putchar()、 scanf()、printf()
    函数的声明和定义1.1 函数声明1.告诉编译器有一个函数叫什么,参数是什么,返回类型是什么。但是具体是不是存在,函数声明决定不了。2.函数的声明一般出现在函数的使用之前。要满足先声明后使用。3.函数的声明一般要放在头文件中的。1.2C本身是不提供输入输出功能的,需要......
  • C++命名空间、标准输入输出、引用
    1、简述C++中命名空间的作用。答:避免重复定义全局变量的问题。2、定义两个命名空间A和B分别在A中和B中定义变量value。在main函数中将两个空间的value打印出来。#include"iostream"usingnamespacestd;namespaceA{intvalue=100;}namespaceB{intvalu......
  • C++输入输出流
    目录入门     C++cout.put():输出单个字符C++cout.write():输出字符串C++cout.tellp()和cout.seekp()方法详解 C++tellp()成员方法C++seekp()成员方法 C++cout格式化输出(超级详细)C++cout成员方法格式化输出使用流操纵算子格式化输出C++怎样对输入输出......
  • 计组笔记第七章——输入输出系统
    7.1.1I/O系统和IO控制方式常见I/O设备:鼠标、键盘;显示器、打印机;硬盘、光盘。主机如何与I/0设备进行交互?I/O接口:又称I/O控制器、设备控制器,负责协调主机与外部设备之间的数据传输。I/O接口与CPU之间靠总线连接,与外设之间靠USB连接线连接。I/O接口多种多样,也会指定相应的标......
  • 计算机组成原理基础第7讲 输入输出系统
    计算机组成原理基础第7讲输入输出系统2.输入输出系统的组成考点二:I/O接口接口的功能和组成I/O接口的基本组成3.接口类型4.程序查询方式考点三:中断系统......
  • C语言day04(输入输出、垃圾字符、分支语句)
    C语言day04【1】按照字符输入输出1》输出:putchar定义格式:intputchar(intc);功能:按照字符输出,向终端输出一个字符参数:要输出的字符的ascii值、字符返回值:输出字符的ASCII值2》输入:getchar定义格式:intgetchar(void)功能:按照字符输入,从终端输入一个字符参数:无......