三种输入输出函数

news2024/11/26 19:40:44

目录

printf函数

scanf函数

getchar函数

putchar函数 

gets函数

puts函数


printf函数

当你需要将数据或文本输出到屏幕或其他输出设备时,C语言提供了一个非常有用的函数,即 printf() 函数。它是标准库中定义的函数,用于格式化输出。

printf() 函数的原型如下:

int printf(const char *format, ...);

它接受一个格式化字符串 format 和一系列要输出的参数。这个函数会根据格式化字符串中的格式说明符,将参数按照指定的格式进行转换和输出。最后,它返回成功输出的字符数

下面是一个简单的示例,展示了如何使用 printf() 函数输出不同类型的数据:

#include <stdio.h>

int main() {
    int num = 10;
    float pi = 3.14159;
    char ch = 'A';
    char str[] = "Hello, World!";

    printf("Integer: %d\n", num);
    printf("Float: %.2f\n", pi);
    printf("Character: %c\n", ch);
    printf("String: %s\n", str);

    return 0;
}

在这个示例中,我们使用 printf() 函数输出了整数、浮点数、字符和字符串。格式化字符串中的格式说明符 %d%.2f%c %s 分别代表整数、浮点数、字符和字符串的输出格式。通过在格式化字符串中使用这些格式说明符,我们可以控制输出的格式和精度。

请注意,printf() 函数中的格式化字符串可以包含普通的字符,例如逗号和空格,以及转义序列,如 \n 表示换行符。此外,我们还可以使用特定的修饰符和标志来进一步定制输出的格式。

总结一下,printf() 函数是C语言中用于格式化输出的函数,可以接受不同类型的参数,并根据格式化字符串中的格式说明符将它们转换为相应的格式输出。这使得在输出数据时更加灵活和方便。


scanf函数

当你需要从用户输入中获取数据时,C语言提供了一个非常有用的函数,即 scanf() 函数。它是标准库中定义的函数,用于格式化输入。

scanf() 函数的原型如下:

int scanf(const char *format, ...);

它接受一个格式化字符串 format 和一系列要读取的变量的地址。根据格式化字符串中的格式说明符,scanf() 函数会读取用户输入的数据,并将其存储在对应的变量中。最后,它返回成功读取的值的数量

下面是一个简单的示例,展示了如何使用 scanf() 函数读取不同类型的数据:

#include <stdio.h>

int main() {
    int num;
    float pi;
    char ch;
    char str[20];

    printf("Enter an integer: ");
    scanf("%d", &num);

    printf("Enter a float: ");
    scanf("%f", &pi);

    printf("Enter a character: ");
    scanf(" %c", &ch);  // 注意空格字符

    printf("Enter a string: ");
    scanf("%s", str);

    printf("Integer: %d\n", num);
    printf("Float: %.2f\n", pi);
    printf("Character: %c\n", ch);
    printf("String: %s\n", str);

    return 0;
}

在这个示例中,我们使用 scanf() 函数分别读取了整数、浮点数、字符和字符串。通过在格式化字符串中使用 %d%f%c%s 格式说明符,并将对应变量的地址传递给 scanf() 函数,我们可以从用户输入中获取相应类型的数据。

请注意,scanf() 函数中的格式化字符串中的格式说明符与 printf() 函数中的格式说明符类似。它们用于指定输入数据的格式和类型。在读取字符时,我们通常在 %c 前面放置一个空格字符,以忽略之前的换行符或空格符。

另外,需要注意的是,使用 %s 读取字符串时,scanf() 函数会根据空格和换行符等空白字符进行分隔。因此,它只能读取不含空格的单词。如果你需要读取带有空格的字符串,可以考虑使用 gets() 函数。

总结一下,scanf() 函数是C语言中用于格式化输入的函数,可以根据格式化字符串中的格式说明符将用户输入的数据转换为相应的类型,并将其存储到对应的变量中。


getchar函数

getchar() 函数是C语言中用于从标准输入(通常是键盘)获取单个字符的函数。它属于标准I/O库,可以帮助你逐个字符地获取用户输入。

getchar() 函数的原型如下:

int getchar(void);

这个函数不需要任何参数,它会从标准输入中读取一个字符,并返回该字符的ASCII码值(整数)。如果没有可用的输入字符,它将返回特定的值 EOF(通常被定义为 -1),表示已经到达了文件末尾。

下面是一个简单的示例,演示了如何使用 getchar 函数逐个字符地获取用户输入,并在屏幕上输出:

#include <stdio.h>

int main() {
    char ch;

    printf("Enter some characters, press Enter when finished:\n");

    while ((ch = getchar()) != '\n') {
        putchar(ch);  // 将字符输出到屏幕上
    }

    return 0;
}

在这个示例中,我们使用 getchar() 函数在一个循环中逐个字符地读取用户输入,直到遇到换行符为止。在每次循环中,我们使用 putchar() 函数将读取到的字符输出到屏幕上。

需要注意的是,getchar() 函数会读取用户输入的所有字符,包括空格、制表符和换行符等。因此,它是按照用户逐个输入的顺序来获取字符的。

另外,当你在命令行中运行这个程序时,你可以通过输入一些字符,然后按下回车键来结束输入。这样,程序就会开始逐个输出你输入的字符。

总结一下,getchar() 函数是C语言中用于逐个字符获取用户输入的函数,它将用户输入的字符作为ASCII码值返回,直到遇到换行符为止。


putchar函数 

putchar() 函数是C语言中用于向标准输出(通常是屏幕)输出单个字符的函数。它属于标准I/O库,可以帮助你逐个字符地输出数据到屏幕或其他输出设备上。

putchar() 函数的原型如下:

int putchar(int char);

这个函数接受一个整数参数通常是表示一个字符的ASCII码值。它会将对应的字符输出到标准输出上并返回输出的字符(即传入的参数)作为返回值。如果发生错误,它会返回一个特定的值 EOF(通常被定义为 -1)。

下面是一个简单的示例,演示了如何使用 putchar 函数向屏幕上逐个输出字符:

#include <stdio.h>

int main() {
    char ch = 'A';

    while (ch <= 'Z') {
        putchar(ch);  // 将字符输出到屏幕上
        ch++;
    }

    return 0;
}

在这个示例中,我们使用 putchar() 函数在一个循环中逐个输出大写字母'A'到'Z'。在每次循环中,putchar() 函数会将当前字符输出到屏幕上。

需要注意的是,putchar() 函数会将指定的字符输出到标准输出上,通常是显示在屏幕上。它可以用于输出字符、符号或者特定的控制字符,比如换行符或制表符等。

另外,通过将 putchar() getchar() 结合使用,你可以实现逐个字符地获取用户输入,并逐个字符地输出到屏幕上,从而创建一个与用户交互的命令行程序。

总结一下,putchar() 函数是C语言中用于逐个字符地向标准输出输出数据的函数,它将指定的字符输出到屏幕上,并返回输出的字符


gets函数

gets() 函数是C语言中用于从标准输入(通常是键盘)获取一行数据的函数。它属于标准I/O库,可以帮助你获取用户输入的字符串

gets() 函数的原型如下: 

char *gets(char *s);

这个函数接受一个字符指针作为参数表示存储用户输入的字符串的存储位置。它会从标准输入中读取一行数据,并将其存储到指定的字符数组中当用户按下回车键时,函数将停止读取数据,并在字符串末尾添加一个空字符 '\0'。

下面是一个简单的示例,演示了如何使用 gets 函数获取用户输入的字符串,并在屏幕上输出:

#include <stdio.h>

int main() {
    char str[100];

    printf("Enter a string: ");
    gets(str);

    printf("You entered: %s\n", str);

    return 0;
}

在这个示例中,我们首先声明了一个长度为100的字符数组 str,用于存储用户输入的字符串。然后,我们使用 gets() 函数获取用户输入的一行字符串,并将其存储到 str 中。最后,我们使用 printf() 函数在屏幕上输出用户输入的字符串。

需要注意的是,gets() 函数具有一些安全性问题,因为它无法防止用户输入的字符串超出指定的缓冲区范围。如果用户输入的字符串长度超过了 str 数组的长度,它可能会覆盖其他内存区域,导致程序出现异常。因此,不推荐使用 gets() 函数,建议使用更安全的函数如 fgets()

另外,如果你需要获取用户输入的一个单词或一个字符,可以使用 scanf() 函数。如果你需要获取用户输入的整数或浮点数,可以使用 scanf()fgets() 函数。

总结一下,gets() 函数是C语言中用于从标准输入获取一行数据的函数,它将用户输入的字符串存储到指定的字符数组中,并在字符串末尾添加一个空字符 '\0'


puts函数

puts() 函数是C语言中用于将字符串输出到标准输出(通常是屏幕)的函数。它属于标准I/O库,可以帮助你输出字符串并自动追加换行符

puts() 函数的原型如下: 

int puts(const char *str);

这个函数接受一个以空字符 '\0' 结尾的字符串作为参数,并将这个字符串输出到标准输出中。与 printf() 函数不同,puts() 函数会自动在输出的字符串末尾添加一个换行符 '\n',因此不需要额外的换行符转义字符。

下面是一个简单的示例,演示了如何使用 puts 函数输出字符串到屏幕上:

#include <stdio.h>

int main() {
    char str[] = "Hello, world!";

    puts(str);

    return 0;
}

在这个示例中,我们声明了一个字符串 str,其中包含了 "Hello, world!" 这个字符串。然后,我们使用 puts() 函数将这个字符串输出到屏幕上,并自动追加换行符。

需要注意的是,puts() 函数只能用于输出字符串,不能用于输出其他类型的数据。如果你需要输出格式化的字符串或者其他类型的数据,可以使用 printf() 函数。

另外,如果你想输出不带换行符的字符串,你可以使用 fputs() 函数,并在需要的时候手动输出换行符。

总结一下,puts() 函数是C语言中用于将字符串输出到标准输出的函数,它会自动在输出的字符串末尾添加一个换行符 '\n'。


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

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

相关文章

[力扣 Hot100]Day27 合并两个有序链表

题目描述 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 出处 思路 简单题&#xff0c;两个指针就能解决。 代码 class Solution { public:ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {if(!list1)…

蓝桥杯电子类单片机提升三——NE555

目录 单片机资源数据包_2023 一、NE555和定时器工作模式 1.NE555的介绍 2.定时器的计数模式 二、NE555频率读取代码的实现 1.定时器0初始化 2.通过读取TH0和TL0来读取频率 3.通过中断读取频率 三、完整代码演示 通过读取TH0和TL0来读取频率 main.c 通过中断读取频…

多模态基础---BERT

1. BERT简介 BERT用于将一个输入的句子转换为word_embedding&#xff0c;本质上是多个Transformer的Encoder堆叠在一起。 其中单个Transformer Encoder结构如下&#xff1a; BERT-Base采用了12个Transformer Encoder。 BERT-large采用了24个Transformer Encoder。 2. BERT的…

【Algorithms 4】算法(第4版)学习笔记 08 - 3.1 符号表

文章目录 前言参考目录学习笔记1&#xff1a;API1.1&#xff1a;遵循的规则1.2&#xff1a;ST 用例举例1.2.1&#xff1a;行为测试用例1.2.2&#xff1a;性能测试用例2&#xff1a;基本实现2.1&#xff1a;无序链表处理2.2&#xff1a;初级ST实现小结2.3&#xff1a;有序数组的…

Python 异常处理及程序调试

Python 是一门功能强大而又易于学习的编程语言&#xff0c;它提供了丰富的工具和库来帮助开发者编写高效、稳定的程序。然而&#xff0c;在编写复杂的应用程序时&#xff0c;错误和异常是难以避免的。本文将介绍 Python 中的异常处理机制以及程序调试技巧&#xff0c;帮助读者提…

Linux--编译器-gcc/g++使用

目录 前言 1.看一段样例 2.程序的翻译过程 1.第一个阶段&#xff1a;预处理 2.第二个阶段&#xff1a;编译 3.第三个阶段&#xff1a;汇编 4.第四个阶段&#xff1a;链接 3.程序的编译为什么是这个样子&#xff1f; 4. 关于编译器 5.链接&#xff08;动静态链接&#x…

Docker的常见命令以及命令别名

常见命令 命令说明docker pull拉取镜像docker push推送镜像到DockerRegistrydocker images查看本地镜像docker rmi删除本地镜像docker run创建并允许容器docker stop停止指定容器docker start启动指定容器docker restart重新启动容器docker rm删除指定容器docker ps查看容器do…

波奇学Linux:文件系统打开文件

从文件系统来看打开文件 计算机系统和磁盘交互的大小是4kb 物理内存的4kb&#xff0c;磁盘的4kb文件叫做页帧 磁盘数据块的以4kb为单位。 减少IO的次数&#xff0c;减少访问外设的次数--硬件 基于局部性的原理&#xff0c;预加载机制--软件 操作系统管理内存 操作系统对…

相机图像质量研究(19)常见问题总结:CMOS期间对成像的影响--Sensor Noise

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结&#xff1a;光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结&#xff1a;光学结构对成…

2.13日学习打卡----初学RocketMQ(四)

2.13日学习打卡 目录&#xff1a; 2.13日学习打卡一.RocketMQ之Java ClassDefaultMQProducer类DefaultMQPushConsumer类Message类MessageExt类 二.RocketMQ 消费幂消费过程幂等消费速度慢的处理方式 三.RocketMQ 集群服务集群特点单master模式多master模式多master多Slave模式-…

使用Python生成二维码的完整指南

无边落木萧萧下&#xff0c;不如跟着可莉一起游~ 可莉将这篇博客收录在了&#xff1a;《Python》 可莉推荐的优质博主首页&#xff1a;Kevin ’ s blog 本文将介绍如何使用Python中的qrcode库来生成二维码。通过简单的代码示例和详细解释&#xff0c;读者将学习如何在Python中轻…

可变参数(c/c++)

目录 一、C语言版本 二、C的实现方法 2.1数据包 2.2sizeof...运算符 2.3可变参数模板的使用 2.4emplace_back() 有时候我们在编写函数时&#xff0c;可能不知道要传入的参数个数&#xff0c;类型 。比如我们要实现一个叠加函数&#xff0c;再比如c语言中的printf,c中的emp…

QObject 的拷贝构造和赋值操作

QObject中没有提供一个拷贝构造函数和赋值操作符给外界使用&#xff0c;其实拷贝构造和赋值的操作都是已经声明了的&#xff0c;但是它们被使用了Q_DISABLE_COPY () 宏放在了private区域。因此所有继承自QObject的类都使用这个宏声明了他们的拷贝构造函数和赋值操作符为私有。 …

算法沉淀——BFS 解决 FloodFill 算法(leetcode真题剖析)

算法沉淀——BFS 解决 FloodFill 算法 01.图像渲染02.岛屿数量03.岛屿的最大面积04.被围绕的区域 BFS&#xff08;广度优先搜索&#xff09;解决 Flood Fill 算法的基本思想是通过从起始点开始&#xff0c;逐层向外扩展&#xff0c;访问所有与起始点相连且具有相同特性&#xf…

Python六级考试笔记

Python六级考试笔记【源源老师】 六级标准 一、 掌握文件操作及数据格式化。 二、 掌握数据可视化操作。 三、 理解类与对象的概念&#xff0c;初步掌握类与对象的使用。 四、 掌握SQLite数据库基础编程。 五、 掌握简单的使用tkinter的GUI设计。 ​ 1. 文件操作 &#xff0…

深入了解社区店:定义、模式与优势

在当今的商业环境中&#xff0c;社区店正逐渐成为创业者们关注的热点。本文将以我的鲜奶吧店铺为例&#xff0c;深入探讨社区店的定义、模式和优势&#xff0c;为您提供最有价值的干货信息。 1、社区店的定义 社区店是指位于社区内或周边&#xff0c;以服务社区居民为主要目标…

shell脚本命令:mktemp和install

目录 一、mktemp命令 1、mktemp命令用法和格式 2、mktemp命令的实现原理 3、相关操作 3.1 创建临时文件或目录 3.2 指定临时文件名或目录名的后缀字符位数 3.3 指定临时文件或目录的父目录 3.4 指定临时文件或目录的后缀 4、实现文件独立的目录垃圾箱 二、install命令…

真假难辨 - Sora(OpenAI)/世界模拟器的技术报告

目录 引言技术报告汉译版英文原版 引言 Sora是OpenAI在2024年2月15日发布的世界模拟器&#xff0c;功能是通过文本可以生成一分钟的高保真视频。由于较高的视频质量&#xff0c;引起了巨大关注。下面是三个示例&#xff0c;在示例之后给出了其技术报告&#xff1a; tokyo-wal…

XMall 开源商城 SQL注入漏洞复现(CVE-2024-24112)

0x01 产品简介 XMall 开源电商商城 是开发者Exrick的一款基于SOA架构的分布式电商购物商城 前后端分离 前台商城:Vue全家桶 后台管理:Dubbo/SSM/Elasticsearch/Redis/MySQL/ActiveMQ/Shiro/Zookeeper等。 0x02 漏洞概述 XMall 开源商城 /item/list、/item/listSearch、/sys/…

2024年【广东省安全员C证第四批(专职安全生产管理人员)】考试试卷及广东省安全员C证第四批(专职安全生产管理人员)复审模拟考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 广东省安全员C证第四批&#xff08;专职安全生产管理人员&#xff09;考试试卷是安全生产模拟考试一点通总题库中生成的一套广东省安全员C证第四批&#xff08;专职安全生产管理人员&#xff09;复审模拟考试&#xf…