从键盘到屏幕:C语言中输入输出探秘

news2024/11/22 21:11:03

        在编程中,输入和输出是我们与计算机交流的关键。无论是键盘输入还是屏幕输出,它们贯穿了我们每一行代码的编写。本文将带你深入探索C语言中输入输出的精彩世界,解锁其中的奥秘,助你轻松驾驭键盘和屏幕!(最后附上2题练习题)

一、输出

        当你写完一段程序,你必然需要让程序输出一些结果,这时就要用到printf、putchar、puts。下面我们来对这三个一一介绍。

  •   printf打印:

        先来举个例子帮助我们理解一下意思,eg:我现在有一个数a等于999,我要把a等于多少用一段程序告诉别人。
        第一步:按照我们前一篇文章说的c语言基础框架,先新建一个文件,搭建好我们的简单框架。
        

        第二步: 开始写入我们的内容,即我们告诉计算机我们的a等于999,再让计算机告诉别人a等于999。
        

        第三步: 打开cmd,cd指令跳到代码文件夹,对这个程序进行编译和运行并生成结果
        

         看到这边,大家应该有点清晰了吧,不懂的话就按照我们上面的图文一步一步操作一遍!
         OK,接下来让我们具体了解一下printf。
        
         printf的格式:
        printf(格式控制,输出表列),例如printf("%d",a),printf("%c",y)。

        括号内包含了两部分:

        (1)格式控制是用双撇号”“括起来的一个字符串。它包括两个信息:
                a、格式声明。格式声明由”%“和格式字符组成,如上面的%d,%c等。它的作用是将输出的数据转换为指定的格式,然后输出。比如:
1. %d为输出十进制整型数int;
2. %c为输出单个字符char;
3. %s为输出多个字符;
4. %f为输出小数float;
5. %x为输出16进制格式的整数;
6. %p一般为打印内存地址,也是16进制格式输出。取出地址(变量的存储位置)的运算符号&。
(c语言中字符串格式有许多,我们先记住最常用的几个就行,步步为营,从简到繁)

                b、普通字符。普通字符就是在输出结果时,需要原样输出的字符。比如,printf("我怎么那么帅呀"),那么结果就会输出:我怎么那么帅呀
                         

        如果将格式声明和普通字符结合起来用,比如:printf("a等于:%d", a )就会是类似于这样的形式:
         

  •  关于%f,再补充一点:

用%f输出实数,只能得到6位小数。如果要指定数据宽度和小数位数,用%m.nf,如%5.2f,指定了输出的数据占5列,其中包括两位小数,此时我们会发现数据像右靠了一些。如果要让输出的数据像左靠,则用%-m.nf。就像下面展示的这样:

 怎么样,应该都挺好理解的吧。还剩下puts和putchar。

  • puts

    输出字符串。和printf的区别在于:1.用puts函数输出字符串时会自动换行,不用使用换行符”\n“;2.puts只能原样输出,不能格式声明。
  • putchar

    输出字符。如:putchar(c);

 二、输入

当你写完一段程序,你可能需要让用户输入一些字符来让你的程序继续运行,这时就要用到scanf和getchar。下面我们来对这俩个一一介绍。

  • scanf扫描键盘

        scanf和printf有异曲同工之妙,scanf的一般形式为:scanf(格式控制,地址表列),格式控制和printf一致,地址表列可以是变量的地址,也可以是字符串的首地址,总之就是地址。如:scanf("%d", &a );
        需要注意的问题:
        1.地址符号:有些新手朋友们容易忘记取地址符号——&,因而写成scanf("%d", a ),这样是不对的;

        2.原样输入:在格式控制的位置,如果除了格式声明外,还有别的字符,如:scanf("地址是:%d",&a),那么用户在输入时,也应该将别的字符一起输进去,像这样:

        3. 注意字符:用”%c“格式声明输入字符时,空格字符和转义字符都会被作为有效字符被扫描到。例如:scanf("%c%c%c",&a.&b.&c),在执行此函数时,应在对应的位置上输入连续的3格字符,中间不能有空格,如:abc
        

  •  getchar

        getchar是用来获取字符的,也可以用来吸收多次使用scanf时留下的回车符,多次使用scanf时,前一次使用scanf留下的回车会影响下一次的scanf,导致下一次的scanf扫描到了回车,会导致程序输出结果出错。

 

三、练习题

1.输入两个数,获得两个数加减乘除的值

#include<stdio.h> 

int main()		
{				
	int a;
	int b;
	
	puts("请输入两个整数");
	scanf("%d%d",&a,&b);
	
	//两个数加
	printf("两个数的和是%d\n",a+b);
	//两个数减
	printf("两个数的差是%d\n",a-b);
	//两个数乘
	printf("两个数的积是%d\n",a*b);
	//两个数除
	printf("两个数的商是%.2f\n",(float)a/b);
	
	return 0;	
}	

2.请编程序将”China“译成密码,密码规律是用原来的字母后面第4个字母代替原来的字母。

 (分别用printf和putchar输出字符)

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

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

相关文章

C++ List底层实现

文章目录 前言成员变量成员函数迭代器self& operator()前置self operator(int)后置self operator--()前置--self operator--(int)后置--bool operator!(const self & tmp)判断是否相等T* operator*() 解引用操作 list()初始化iterator begin()iterator end()const_iter…

年度告警分类统计

1、打开前端Vue项目kongguan_web&#xff0c;完成前端src/components/echart/YearWarningChart.vue页面设计 在YearWarningChart.vue页面添加div设计 <template><div class"home"><div style"margin: 0px auto;height: 100%"><div …

seleniumUI自动化实例(CSDN发布文章)

1.CSDN登陆成功后&#xff0c;点击发布 源码&#xff1a; #点击首页中的发布按钮 CSDNconf.driver.find_element(By.LINK_TEXT,"发布").click() time.sleep(15) 2.输入标题 #输入文章标题&#xff0c;标题格式“selenium UI自动化测试实例今天的日期” CSDNconf.d…

「数据分析」之零基础入门数据挖掘

摘要&#xff1a;对于数据挖掘项目&#xff0c;本文将学习应该从哪些角度分析数据&#xff1f;如何对数据进行整体把握&#xff0c;如何处理异常值与缺失值&#xff0c;从哪些维度进行特征及预测值分析&#xff1f; 探索性数据分析&#xff08;Exploratory Data Analysis&#…

期刊如何反击一波可疑图像

出版商正在部署基于人工智能的工具来检测可疑图像&#xff0c;但生成式人工智能威胁着他们的努力。 期刊正在努力检测用于分析蛋白质和DNA的凝胶的操纵图像。图片来源&#xff1a;Shutterstock 似乎每个月都会有一系列针对研究人员的新高调指控&#xff0c;这些研究人员的论文…

正则表达式具体用法大全

# 正则表达式&#xff1a; ## 单字符匹配&#xff1a; python # 匹配某个字符串&#xff1a; # text "abc" # ret re.match(b,text) # print(ret.group()) # 点&#xff08;.&#xff09;&#xff1a;匹配任意的字符(除了\n)&#xff1a; # text "\nabc&quo…

《论文阅读》带边界调整的联合约束学习用于情感原因对提取 ACL 2023

《论文阅读》带边界调整的联合约束学习用于情感原因对提取 前言简介Clause EncoderJoint Constrained LearningBoundary Adjusting损失函数前言 亲身阅读感受分享,细节画图解释,再也不用担心看不懂论文啦~ 无抄袭,无复制,纯手工敲击键盘~ 今天为大家带来的是《Joint Cons…

Photoshop 2024让图像处理更智能、更高效@

Photoshop 2024是一款功能强大的图像处理软件&#xff0c;广泛应用于创意设计和图像处理领域。它提供了丰富的绘画和编辑工具&#xff0c;包括画笔、铅笔、颜色替换、混合器画笔等&#xff0c;使用户能够轻松进行图片编辑、合成、校色、抠图等操作&#xff0c;实现各种视觉效果…

如何处理WordPress网站域名循环重定向

我在 HostEase 搭建了一个 WordPress 网站。在访问网站时出现了循环重定向的问题。经检查&#xff0c;发现是我在 .htaccess 文件中设置的重定向规则导致的。 重定向循环通常指的是一个网页或者URL地址在不断地进行重定向&#xff0c;最终形成一个循环&#xff0c;导致网页无法…

Monaco Editor系列(一)启动项目与入门示例解析

前言&#xff1a;作为一名程序员&#xff0c;我们工作中的每一天都在与代码编辑器打交道&#xff0c;相信各位前端程序员对 VS Code 一定都不陌生&#xff0c;VS Code 可以为我们提供代码高亮、代码对比等等功能&#xff0c;让我们在开发的时候&#xff0c;不需要对着暗淡无光的…

FreeCAD傻瓜教程之创建参数化几何图形-螺旋体、平面、球体、椭球体、圆柱体、圆锥体、棱柱、椭圆

目的&#xff1a;学会用FreeCAD绘制参数化的几何图形。 一、使用的工作台和工具 1.1选择Part 工作台 1.2单击创建图元...工具 也就是上图黄色工具区域的倒数第2个 1.3 打开几何图元 下方的下拉列表 二、绘制螺旋体、弹簧、螺丝杆 2.1 选择几何图元列表中的 “螺旋体” 设…

opengl日记10-opengl使用多个纹理示例

文章目录 环境代码CMakeLists.txt文件内容不变。fragmentShaderSource.fsvertexShaderSource.vsmain.cpp 总结 环境 系统&#xff1a;ubuntu20.04opengl版本&#xff1a;4.6glfw版本&#xff1a;3.3glad版本&#xff1a;4.6cmake版本&#xff1a;3.16.3gcc版本&#xff1a;10.…

常见分布式ID解决方案

简介&#xff1a; 分布式ID解决方案是用于在分布式系统中生成唯一标识符的方案。常见的分布式ID解决方案可总结为3点&#xff1a;数据库方案、算法方案、开源组件方案。 分布式ID 分布式 ID&#xff08;Distributed ID&#xff09;是指在分布式系统中生成全局唯一的标识符&…

10000字!一文学会SQL数据分析

文章来源于山有木兮 原文链接&#xff1a;https://edu.cda.cn/goods/show/3412?targetId5695&preview0 第1节 SQL简介与基础知识 做数据分析的&#xff0c;为什么要写SQL&#xff1f; 没有数据的情况下&#xff0c;我们分析数据就像是巧妇难为无米之炊。因此&#xff0c…

【prometheus-operator】k8s监控redis

1、准备exporter https://github.com/oliver006/redis_exporter oliver006-redis_exporter-amd64.tar # 安装镜像 docker load -i oliver006-redis_exporter-amd64.tar # 上传镜像 docker tag oliver006/redis_exporter ip/monitor/redis_exporter:latest docker push ip/mo…

零基础入门数据挖掘系列之「建模调参」

摘要&#xff1a;对于数据挖掘项目&#xff0c;本文将学习如何建模调参&#xff1f;从简单的模型开始&#xff0c;如何去建立一个模型&#xff1b;如何进行交叉验证&#xff1b;如何调节参数优化等。 建模调参&#xff1a;特征工程也好&#xff0c;数据清洗也罢&#xff0c;都是…

强大的文本编辑器:Sublime Text for Mac注册激活版

Sublime Text for Mac是一款功能强大的文本编辑器&#xff0c;特别适合程序员和开发者使用。它提供了丰富的功能&#xff0c;如智能代码补全、语法高亮、自定义快捷键、项目管理、多行选择、自动保存等&#xff0c;以提高代码编写效率和舒适度。此外&#xff0c;Sublime Text还…

【鸿蒙HarmonyOS开发笔记】通知模块之发布基础类型通知,内含如何将图片变成PixelMap对象

通知简介 应用可以通过通知接口发送通知消息&#xff0c;终端用户可以通过通知栏查看通知内容&#xff0c;也可以点击通知来打开应用。 通知常见的使用场景&#xff1a; 显示接收到的短消息、即时消息等。 显示应用的推送消息&#xff0c;如广告、版本更新等。 显示当前正…

数字功放VS模拟功放,选择适合你的音频解决方案

数字功放和模拟功放是音频系统中常用的两种功放技术&#xff0c;适用于不同的音频应用&#xff0c;都具有各自的优势和特点。本文将为您详细介绍数字功放和模拟功放的差异&#xff0c;并帮助您找到适合自己的音频解决方案。 1、数字功放是一种利用数字信号处理技术的功放。它将…

Qt 坐标位置转换

Qt 坐标位置转换 文章目录 Qt 坐标位置转换常见的位置坐标转换Qt窗体中常用坐标的区别与获取途径当前光标相对于屏幕的绝对位置当前光标相对于当前窗口的位置鼠标事件发生的位置窗体的位置判断鼠标光标是否悬浮在某个子控件上 从事Qt快一年了 &#xff0c;在做坐标转换的时候容…