C语言程序设计-[5] 输入输出语句

news2024/11/24 7:51:16

C语言提供了一些输入输出的库函数,使用库函数,必须将相应的头文件“stdio.h”包含进来。

输入输出库函数可分为三类:字符输入输出函数、字符串输入输出函数和格式化输入输出函数。前两类功能单一,使用起来相对简单,以具体实例介绍如何使用即可。

1)字符输入输出函数

#include "stdio.h"

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

注:第一个A字符是键盘输入的(即回显),第二个A字符是输出语句输出的。

#include "stdio.h"

int main()
{
	char c;
	c=getch();
	putchar(c);
	return 0;
}

注:第一个A字符是输出语句输出的,而键盘输入的A字符没有回显。

#include "stdio.h"

int main()
{
	char c;
	c=getche();
	putchar(c);
	return 0;
}

注:第一个A字符是键盘输入的(即回显,但是不用回车,所以光标就在第一个A字符之后),第二个A字符是输出语句输出的(直接在第一个A字符之后)。

2)字符串输入输出函数

#include "stdio.h"

int main()
{
	char str[20];
	gets(str);
	puts(str);
	return 0;
}

注:gets()可以输入带有空格的字符串,这不同于以%s输入字符串。此外,gets()需要回车结束。

gets()输入的带有空格字符串,可以使用%s输出。

#include "stdio.h"

int main()
{
	char str[20];
	gets(str);
	printf("%s",str);
	//puts(str);
	return 0;
}

3)格式化输入输出函数

#include "stdio.h"

int main()
{
	int i=1;
	float f=2.0;
	char c='A';
	printf("%d %f %c",i,f,c);
	return 0;
}

#include "stdio.h"

int main()
{
	long l=12;
	double d=8.5;
	printf("%ld %lo %lx %lu\n",l,l,l,l);
	printf("%le %lf %lg\n",d,d,d,d);
	return 0;
}

注1:长整型只是存储长度变大了,即取值范围变大了。

注2:%lg与%lf的区别,在于它不显于无效的0。

#include "stdio.h"

int main()
{
	float f=1.2345;
	char s[20]="China!";
	printf("%3f,%.2f,%5.2f,%-5.2f\n",f,f,f,f);
	printf("%3s,%.2s,%5.2s,%-5.2s",s,s,s,s);
	return 0;
}

注3:对于%m,当m小于实际长度时,以实际长度输出;对于%.n,首先取n小数或截n位字符,然后以实际长度输出;对于%m.n,首先取n小数或截n位字符,然后看实际长度与m(若实际长度大于m,则按实际长度输出;若小于m,则右对齐输出);对于%-m.n,则左对齐输出。

注:定义是什么类型,scanf()就输入什么类型,其他与printf()类似。此外,输入变量时使用&来取变量的地址(数组名本身为地址,所以数组名前面不需要&)。

但是,以%c和%s输入字符和字符串时,需要注意在调用%c和%s之前输入缓存中是否还有字符和字符串。若输入缓存中明确是一个字符,则可以用getchar()来吃掉这个字符。若输入缓存中有多个字符,则可以使用fflush(stdin)清除所有字符。否则会发生输入错位而使得程序出错。

#include "stdio.h"

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

注:输入第一个字符A后按回车,意味着第二个输入的字符变成了回车符,而没办法输入想输入的第二个字符。这种可以用getchar()来解决。

#include "stdio.h"

int main()
{
	char c1,c2;
	scanf("%c",&c1);
	getchar();  //吃掉回车符 
	scanf("%c",&c2);
	printf("%c,%c",c1,c2);
	return 0;
}

也可以用fflush(stdin)来解决:

#include "stdio.h"

int main()
{
	char c1,c2;
	scanf("%c",&c1);
	fflush(stdin);  //清除所有字符 
	scanf("%c",&c2);
	printf("%c,%c",c1,c2);
	return 0;
}

注:以%s输入与以%c输入类似处理。此外,%s不能输入带空格的字符串。

#include "stdio.h"

int main()
{
	int a,b,c;
	scanf("%3d",&a);
	scanf("%d %*d %d",&b,&c);
	printf("%d %d %d",a,b,c);
	return 0;
}

注:上面输入的12345被截为123,而45赋给b,34被跳过,56赋给c。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1983030.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

消息队列:Kafka吞吐量为什么比RocketMQ大

根据资料显示RocketMQ每秒能处理10W量级数据,而Kafka能处理17W量级数据。 这两者差别主要再使用的零拷贝技术不一样。 再什么情况下零拷贝技术诞生了 为了防止消息队列中的消息因为各种意外情况丢失,要对消息进行持久化处理,将其存储在磁盘…

Dubbo未授权访问漏洞

Dubbo是阿里巴巴公司开源的一个高性能优秀的 服务框架,使得应用可通过高性能的 RPC 实现服务的输 出和输入功能,可以和 Spring框架无缝集成。dubbo 因配置不当导致未授权访问漏洞。 》》》漏洞复现《《《 步骤一:使用以下语句在Fofa上进行资…

STM32智能小车(循迹、跟随、避障、测速、蓝牙、wifi、4g、语音识别)总结

前言 有需要帮忙代做51和32小车或者其他单片机项目,课程设计,报告,PCB原理图的小伙伴,可以在文章最下方加我V交流咨询,本篇文章的小车所有功能实现的代码还有硬件清单放在资源包里,有需要的自行下载即可&a…

Elasticsearch(高性能分布式搜索引擎)-上篇

Elasticsearch(高性能分布式搜索引擎) 文章目录 Elasticsearch(高性能分布式搜索引擎)1 初识elasticsearch1.1 认识和安装1.2 倒排索引1.3 IK分词器1.4 基础概念1.4.1 elasticsearch与数据库对比 2 索引库的操作2.1 Mapping映射属…

FutureTask详解

FutureTask详解 1、FutureTask简介 FutureTask主要用于异步任务的执行和结果获取。其最重要的特性就是可以被提交到线程池中执行&#xff0c;同时也可以用来获取执行结果或检查任务的状态。 2、FutureTask内部结构 继承结构 public class FutureTask<V> implements …

Materialise Magics对齐实现分件对齐

零件‘对齐’三步曲之一 当我们需要对两个零件进行重叠&#xff0c;平行等对齐操作时&#xff0c;可以使用Magics->位置-> ‘对齐’ 功能。通过添加有效的约束条件&#xff0c;就可以实现自动对齐零件啦。 让我们看一下当两个单一方向的零件如何利用边线约束来对齐吧&a…

pxe自动安装linux

实验环境 1.rhel7主机 2开启主机图形&#xff08;本人最小化安装&#xff0c;先下载&#xff09; 3配置网络 4关闭VMware dhcp功能 5能够自动安装系统 完成rhedhat7图形,kickstart,启动图形化制作工具 安装kickstart 启动图形化制作工具 在ks.cfg可以添加安装时下载的包 …

C# 高级数据处理:深入解析数据分区 Join 与 GroupJoin 操作的应用与实例演示

文章目录 一、概述二. 数据分区 (Partitioning)三、Join 操作符1. Join 操作符的基本用法2. Join 操作符示例 四、GroupJoin 操作符1. GroupJoin 操作符的基本用法2. GroupJoin 操作符示例 总结 在数据处理中&#xff0c;联接&#xff08;Join&#xff09;操作是一种非常常见的…

Unity:Camera 对象操作的技术指南

请关注微信公众号&#xff1a;拾荒的小海螺 博客地址&#xff1a;http://lsk-ww.cn/ 1、简述 在Unity中&#xff0c;Camera 是一个至关重要的组件&#xff0c;用于渲染场景中的图像。无论是3D游戏还是2D游戏&#xff0c;Camera 都是必不可少的元素。通过合理配置和操作 Camer…

2024华数杯全国大学生数学建模竞赛B题思路-VLSI电路单元的自动布局-关键路径优化的多层划分算法

在粗化过程中&#xff0c;只考虑了如何匹配以使得后续划分 中有尽可能少的割边数&#xff0c;但没有将关键路径和割边的时延视为划分信息的一部分&#xff0c; 这可能导致关键路径较多地被切割&#xff0c;增加了关键路径时延&#xff0c;影响了并行度。另外&#xff0c; 初始划…

卡码网--数组篇(有序数组的平方)

系列文章目录 卡码网–数组篇(二分法) 卡码网–数组篇(移除元素) 文章目录 系列文章目录前言977.有序数组的平方 前言 代码随想录详情链接 977.有序数组的平方 力扣链接&#xff1a;https://leetcode.cn/problems/squares-of-a-sorted-array/description/ Step 1: 读题&…

Xinstall全链路数据统计,助力推广者破解社交分享难题

在数字营销的时代&#xff0c;社交分享推广已成为App运营的重要手段。然而&#xff0c;推广者们在进行社交分享推广时&#xff0c;往往面临着诸多痛点。其中&#xff0c;最关键的问题便是如何准确、高效地统计推广效果。今天&#xff0c;我们就来聊聊Xinstall这一神奇工具&…

【优秀python大屏】基于python flask的广州历史天气数据应用与可视化大屏

摘要 气象数据分析在各行各业中扮演着重要的角色&#xff0c;尤其对于农业、航空、海洋、军事、资源环境等领域。在这些领域中&#xff0c;准确的气象数据可以对预测未来的自然环境变化和采取行动来减轻负面影响的决策起到至关重要的作用。 本系统基于Python Flask框架&#…

五种IO模型(阻塞,非阻塞,多路复用[select, poll, epoll],信号驱动,异步IO)

五种IO模型&#xff08;阻塞&#xff0c;非阻塞&#xff0c;信号驱动[select, poll, epoll]&#xff0c;多路复用&#xff0c;异步IO&#xff09; 本章节代码&#xff1a;一&#xff0c;五种IO模型阻塞IO非阻塞IO多路复用&#xff08;也叫多路转接&#xff09;信号驱动异步IO例…

Solaris10(SPARC/x86)源码编译安装64位Python

Solaris10(SPARC/x86)源码编译安装64位Python 系统自带的Python版本为32位&#xff0c;需要安装64位版本Python。 solariskalami>python Python 3.3.6 (default, Mar 18 2016, 14:34:49) [GCC 5.2.0] on sunos5 Type "help", "copyright", "cred…

redis在Dokcer的安装使用

1 redis 安装和配置 # redis 是什么 开源&#xff1a;基于c编写的&#xff0c;早起版本2w3千行 基于键值对的存储系统&#xff1a;字典形式 多种数据结构&#xff1a;字符串&#xff0c;hash&#xff0c;列表&#xff0c;集合&#xff0c;有序集合 高性能&#xff0c;功能丰富…

ORB-SLAM2运行环境搭建

操作系统&#xff1a;Ubuntu20.04 1.安装Eigen3 推荐大家安装版本 3.2.10 链接&#xff1a;https://eigen.tuxfamily.org/index.php?titleMain_Page mkdir build cd build cmake .. sudo make install2.安装Pangolin 推荐安装0.5版本 链接&#xff1a;https://github.com…

【生成式AI-二-强大的AI下我们可以做什么】

强大的AI下我们可以做什么 人工智能的厉害之处我们可以作什么评估模型好坏的难度prompt engineering微调fine tune 人工智能的厉害之处 人工智能并不是忽然就爆火的&#xff0c;事实上&#xff0c;很久以前就已经有深度学习、机器学习这些概念了&#xff0c;那现在的人工智能和…

MybatisPlus常见注解及配置

什么是MybatisPlus? MybatisPlus&#xff08;简称MP&#xff09;是一个基于MyBatis的增强工具&#xff0c;它在MyBatis的基础上进行了扩展&#xff0c;旨在简化MyBatis的操作&#xff0c;提高开发效率。MybatisPlus继承了MyBatis原生的所有特性&#xff0c;并添加了一些额外的…

【C++刷题】优选算法——BFS第三辑

多源BFS问题解决&#xff1a;用 BFS 解决边权为1的多源最短路问题 解法一&#xff1a;把多源最短路问题转化为若干个单源最短路问题 解法二&#xff1a;把所有的源点当成一个“超级源点”&#xff0c;从而转化为单源最短路问题&#xff08;推荐&#xff09; 单源最短路问题的解…