三种输入输出函数

目录

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'。


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何监控另一台电脑屏幕画面?如何远程监控电脑屏幕?

在数字化时代&#xff0c;随着远程工作和协作的普及&#xff0c;电脑屏幕监控的需求也日益增长。无论是出于安全考虑、提高员工工作效率&#xff0c;还是确保企业机密的保密性&#xff0c;电脑屏幕监控都成为了企业不可或缺的管理工具。那么&#xff0c;如何监控另一台电脑屏幕…

怎么恢复电脑重装前的数据?介绍几种有效的方法

在日常生活和工作中&#xff0c;电脑已成为我们不可或缺的工具。然而&#xff0c;有时候我们会遇到一些突发情况&#xff0c;比如电脑系统崩溃需要重新安装系统。在这个过程中&#xff0c;我们可能会失去一些重要的数据&#xff0c;比如照片、文档、视频等。这些数据可能包含着…

第三十一回 武行者醉打孔亮 锦毛虎义释宋江-解压文件但不重复解压

武松发现蜈蚣岭寺庙里一个人搂着女的看月亮&#xff0c;就把那个人和他的道童都杀了。原来那个人叫飞天蜈蚣王道人&#xff0c;那女的是被掳来的&#xff0c;她将一包金银给武松&#xff0c;武松没有要。 就像武松在处理问题时展现出的智慧和决断力&#xff0c;现代IT技术同样…

使用骨传导耳机真的不损伤听力吗?哪些人群适合购买骨传导耳机?

如果是正确的使用骨传导耳机&#xff0c;是不会损伤听力的&#xff0c;因为骨传导耳机采用开放式佩戴&#xff0c;而且传声方式不经过耳道和耳膜&#xff0c;是通过人体骨骼来传递声音&#xff0c;不会损伤耳膜&#xff0c;所以不会损伤听力。 由于骨传导耳机的特殊性&#xff…

SG3225VEN晶体振荡器SPXO

SG3225VEN是爱普生的一款LVDS输出差分晶振&#xff0c;小体积晶振尺寸3.2*2.5mm的石英晶体振荡器&#xff0c;六脚贴片晶振&#xff0c;电源电压2.5V、3.3V&#xff0c;频率范围25mhz ~ 500mhz&#xff0c;工作温度可达到- 40℃~ 105℃&#xff0c;该产品具有超小型&#xff0…

【深入理解BEVFormer】BEVFormer

任务场景 多模态融合和多传感器融合 BEV&#xff1a;鸟瞰图 这个特征空间与每个视角都相关 早期是用后融合&#xff0c;目前比较流行的是特征级融合 自身运动补偿&#xff1a;如果按照像素点进行特征对齐&#xff0c;需要指定偏移量 x y两个方向 特征空间是自己定义的&#xf…

使用REQUESTDISPATCHER对象调用错误页面

使用REQUESTDISPATCHER对象调用错误页面 问题陈述 InfoSuper公司已经创建了一个动态网站。发生错误时,浏览器中显示的堆栈跟踪很难理解。公司的系统分析师David Wong让公司的软件程序员Don Allen创建自定义错误页面。servlet引发异常时,应使用RequestDisapatcher对象向自定义…

【牛客面试必刷TOP101】Day22.BM16 删除有序链表中重复的元素-II和BM21 旋转数组的最小数字

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;牛客面试必刷TOP101 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01;&#xff01;&…

OpenAI 最新发布的从文本生成视频模型 Sora 炸裂登场,它能根据文字指令创造逼真且富有想象力的场景

文章目录 一、前言二、主要内容三、总结 &#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、前言 此页面上的所有视频均由 Sora 直接生成&#xff0c;未经修改。 OpenAI - Sora is an AI model that can create realistic and imaginative scenes f…

关于Build Your Own Botnet的尝试

这是一次失败的尝试、 原文地址&#xff1a;关于Build Your Own Botnet的尝试 - Pleasure的博客 下面是正文内容&#xff1a; 前言 我在上一篇关于DDOS的文章种提到过这个项目&#xff0c;而且说明了由于这个项目是在2020年发布并开源的&#xff0c;并且已经有两年没有进行跟…

react+ts【项目实战一】配置项目/路由/redux

文章目录 1、项目搭建1、创建项目1.2 配置项目1.2.1 更换icon1.2.2 更换项目名称1.2.1 配置项目别名 1.3 代码规范1.3.1 集成editorconfig配置1.3.2 使用prettier工具 1.4 项目结构1.5 对css进行重置1.6 注入router1.7 定义TS组件的规范1.8 创建代码片段1.9 二级路由和懒加载1.…

【JS逆向+Python模拟API请求】逆向某一个略微中等的混淆网站,并模拟调用api请求 仅供学习。注:不是源代码混淆,而是一个做代码混淆业务的网站,

逆向日期&#xff1a;2024.02.16 使用工具&#xff1a;Node.js 加密方法&#xff1a;RSA标准库 文章全程已做去敏处理&#xff01;&#xff01;&#xff01; 【需要做的可联系我】 AES解密处理&#xff08;直接解密即可&#xff09;&#xff08;crypto-js.js 标准算法&#xf…

Dynamo读取Revit警告

Hello大家好&#xff01;我是九哥~ 之前看到群里小伙伴经常会问如何去掉Revit重复的图元&#xff0c;有推荐各种插件的&#xff0c;其实的&#xff0c;Revit本身就会提示你有哪些图元是重复的&#xff0c;就在管理选项卡下面的警告里&#xff0c;即查阅警告信息。 点击警告后…

【JAVA-Day81】 线程休眠: Java 中暂停线程执行的方法 ⏸️

线程休眠&#xff1a; Java 中暂停线程执行的方法 ⏸️&#x1f4a4; 线程休眠&#xff1a; Java 中暂停线程执行的方法 ⏸️&#x1f4a4;摘要 &#x1f4dd;引言 &#x1f680;正文 &#x1f4da;一、什么是线程休眠 ⏸️二、线程什么情况下会休眠 ❓三、模拟线程休眠 &#…

OpenAI发布全新文本生成视频大模型Sora,可以生成无比逼真的最长60秒的视频,且生成的视频尺寸可以任意指定

本文原文来自DataLearnerAI官方网站&#xff1a; OpenAI发布全新文本生成视频大模型Sora&#xff0c;可以生成无比逼真的最长60秒的视频&#xff0c;且生成的视频尺寸可以任意指定 | 数据学习者官方网站(Datalearner)https://www.datalearner.com/blog/1051708046782555 Open…

自动化机器学习(AutoML)入门简介

近期在学习研究一些关于自动化机器学习方面的论文&#xff0c;本文作为该系列的第一篇文章&#xff0c;就AutoML的一些基本概念和现状进行简单分享&#xff0c;权当抱砖引玉。 图片源自《Taking Human out of Learning Applications: A Survey on Automated Machine Learning》…

【JavaEE】spring boot快速上手

SpringBoot快速上手 文章目录 SpringBoot快速上手Maven会出现的一个官方bug创建完项目之后常用的的三个功能依赖管理Maven仓库中央仓库本地仓库国内源配置私服 springboot项目创建什么是springspring boot项目的创建Hello Worldweb服务器 SpringMVC什么是SpringWebMVC什么是MVC…

变分自编码器(VAE)PyTorch Lightning 实现

✅作者简介&#xff1a;人工智能专业本科在读&#xff0c;喜欢计算机与编程&#xff0c;写博客记录自己的学习历程。 &#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&…

165基于matlab的各类滤波器

基于matlab的各类滤波器。汉宁窗设计Ⅰ型数字高通滤波器、切比雪夫一致逼近法设计FIR数字低通滤波器、模拟Butterworth滤波器设计数字低通滤波器、频域抽样法的FIR数字带阻滤波器设计、频域抽样法的FIR数字带通滤波器设计、汉宁窗的FIR数字高通滤波器设计、双线性法设计巴特沃斯…