输入与输出(12)

news2024/9/20 22:46:24

在 C 语言中,标准输入输出库(stdio.h)是用来处理输入和输出操作的主要工具。这个库提供了一系列功能强大的函数来读写各种数据类型,这对任何C程序都是至关重要的。下面是对 C 中输入和输出功能的更详细解释。

1.stdio.h 库

通过包含 stdio.h 头文件,你可以访问 C 语言中广泛使用的 I/O 函数:

#include <stdio.h>

2.常用的 I/O 函数

以下是一些 stdio.h 提供的关键函数:

  • printf():用于将格式化的输出写入标凈输出(通常是屏幕)。
  • scanf():从标准输入(通常是键盘)读取格式化输入。
  • fgets():从指定的流中读取字符串,直到遇到换行符或 EOF。
  • fprintf():向指定的文件流写入格式化输出。
  • sscanf():从字符串读取格式化输入。

3.标准 I/O 流

在 C 中,有三种预定义的流:

  • stdin:标准输入流,用于接收输入。
  • stdout:标准输出流,用于输出数据到屏幕。
  • stderr:标准错误流,用于输出错误消息。

4.使用 printf() 输出

printf() 函数是用于输出的主要工具。它支持多种格式指示符来正确输出不同类型的数据:

int main()
{
    int age = 37;
    printf("My age is %d\n", age);  // %d 是整数的格式指示符
    return 0;
}

5.使用 scanf() 输入

scanf() 函数与 printf() 函数相反,它用于从标准输入读取格式化的数据:

int main()
{
    int age;
    printf("Enter your age: ");
    scanf("%d", &age);  // 注意 & 符号,它是取地址符,用于获取变量的内存地址
    printf("You entered: %d\n", age);
    return 0;
}

6.处理字符串

处理字符串时,scanf() 可以用 %s 来读取,但它在默认情况下无法处理空格。使用 fgets() 可以更安全地读取含有空格的字符串:


int main()
{
    char name[50];
    printf("Enter your name: ");
    fgets(name, sizeof(name), stdin);  // 从 stdin 读取最多 sizeof(name)-1 个字符
    printf("You entered: %s", name);
    return 0;
}

7.注意事项

使用 scanf() 时必须小心,因为如果输入的数据类型不匹配,它可能导致程序出错或产生意外行为。而且,scanf() 不会检查数组的边界,容易造成缓冲区溢出。

8.小结

C语言的 I/O 操作虽然不如高级语言中的 I/O 机制直观,但它提供了强大的控制能力和灵活性。

-------------------end

读者若感兴趣可关注个人微信公众号“一只贝塔狗”,将持续为您分享有用的工科知识。

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

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

相关文章

9:00面试,9:05就出来了,问的问题有点出乎意料!

从小厂跳槽出来&#xff0c;本以为能在新公司大展拳脚&#xff0c;没想到没多久就再次遭遇困境。 入职初期&#xff0c;加班成了家常便饭&#xff0c;尽管如此&#xff0c;考虑到薪酬还算可观&#xff0c;我并没有过多抱怨。然而&#xff0c;到了六月&#xff0c;一纸通知打破…

第十二章、 集合

第十二章、 集合 12.1 集合的理解和好处 数组 &#xff08;1&#xff09;. 长度开始时必须指定&#xff0c;而且一旦指定&#xff0c;不能修改 &#xff08;2&#xff09;. 保存的必须为同一类型的元素 &#xff08;3&#xff09;. 使用数组进行增加/删除元素的示意代码—比较…

力扣刷题(复习版)

文章目录 题目&#xff1a;最大重复子字符串题解 题目&#xff1a; 面试题 16.07. 最大数值题解 题目&#xff1a; 最大字符串配对数目题解 题目&#xff1a; 字符串中第二大的数字题解 总结 题目&#xff1a;最大重复子字符串 原题链接&#xff1a;最大重复子字符串 题解 …

JetBrains RubyMine 2024.2 (macOS, Linux, Windows) - 最智能的 Ruby 与 Rails IDE

JetBrains RubyMine 2024.2 (macOS, Linux, Windows) - 最智能的 Ruby 与 Rails IDE JetBrains 跨平台开发者工具 请访问原文链接&#xff1a;https://sysin.org/blog/jetbrains-rubymine/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1…

等保测评中的安全测试方法

等保测评&#xff0c;即信息安全等级保护测评&#xff0c;是我国网络安全领域的重要评估机制&#xff0c;用于验证网络系统或应用是否满足相应的安全保护等级要求。在等保测评中&#xff0c;安全测试方法扮演着至关重要的角色。本文将详细介绍等保测评中常用的安全测试方法及其…

自定义@Resource注解功能

文章目录 1.目录2.Resource.java3.MonsterController.java 依赖注入Service调用方法4.SunWebApplicationContext.java1.executeResource方法完成依赖注入&#xff0c;先按照名字再按照类型2.init方法调用 5.测试 1.目录 2.Resource.java package com.sunxiansheng.springmvc.a…

Linux网络配置和系统管理

Linux网络配置和系统管理 1.查看网络IP和网关windows系统主机 IP虚拟机 IP虚拟机网关网络检测命令 ping网络连接模式 2.配置静态IP地址(NAT网络连接模式)前提说明配置主机的VMware Network Adapter VMnet8 网卡静态IP地址注意点虚拟机配置静态ip修改后ping命令测试修改虚拟机静…

选择泛域名证书还是多域名证书?

在选择泛域名SSL证书&#xff08;也称为通配符SSL证书&#xff09;和多域名证书时&#xff0c;需要综合考虑多个因素&#xff0c;包括业务需求、成本效益、灵活性以及未来规划等。以下是对这两种证书的比较及选择建议&#xff1a; 一、定义与特点 泛域名SSL证书&#xff08;通…

智能巡检系统,确保到位管理,提升安全效率新境界

在现代工业生产与设施管理中&#xff0c;巡检作为确保设备安全、预防故障发生的重要环节&#xff0c;其效率与准确性直接关系到企业的运营安全与经济效益。然而&#xff0c;传统的人工巡检方式往往存在巡检周期长、覆盖面有限、数据记录易出错、隐患难以及时发现等痛点&#xf…

大模型分布式训练进阶之路:数据并行、管道并行、张量并行、3D并行

系统化的学习大模型&#xff0c;除了知道大模型是什么&#xff0c;也得知道大模型是如何训练的&#xff0c;对大模型的实际应用有更加定量的认知&#xff0c;该文章也算是一篇分布式训练的学习过程总结&#xff0c;作为循序渐进学习分布式训练的总结。 类似之前写过的LLM文章&…

U盘怎么加密保护?U盘加密软件哪个好?

在工作和生活中&#xff0c;我们经常需要使用U盘来存储数据。而为了避免U盘数据泄露&#xff0c;我们需要加密保护U盘。那么&#xff0c;U盘加密软件哪个好呢&#xff1f;下面我们就一起来了解一下。 BitLocker加密 BitLocker是Windows系统提供的磁盘加密功能&#xff0c;可以…

DevOps实现CI/CD实战(三)- 集成Sonar Qube

七、集成Sonar Qube 1. SonarQube介绍 Sonar Qube是一个开源的代码分析平台&#xff0c;支持Java、Python、PHP、JavaScript、CSS等25种以上的语言&#xff0c;可以检测出重复代码、代码漏洞、代码规范和安全性漏洞的问题。 Sonar Qube可以与多种软件整合进行代码扫描&#…

大龄程序员转行AI大模型:机遇与挑战解析

前言 对于大龄程序员而言&#xff0c;转行到AI大模型领域是一个既充满挑战又极具吸引力的选择。在这个领域&#xff0c;您将有机会接触到最新的技术趋势&#xff0c;参与到前沿的项目中&#xff0c;并且有可能获得更高的薪酬。下面是一些具体的步骤和建议&#xff0c;帮助您顺…

普通人用 AI 变现的4大方向

前言 AI出现&#xff0c;几家欢喜几家愁。 有人担心受怕恐因AI被裁&#xff0c;有人却早已利用AI躺赚&#x1f4b0;。 “利用AI发展副业的方式究竟有哪些&#xff1f;怎么样才能利用AI做到躺赚&#xff1f;” 我相信这是绝大部分人的疑惑点&#xff0c;包括我&#xff01;&…

【AI大模型】提示词(Prompt)全面解析

文章目录 前言前置准备&#xff08;非常重要&#xff09;一、Prompt 提示词介绍1.1 Prompt 的重要性 二、Prompt 提示词元素构成与实践2.1 关键字2.2 上下文2.3 格式要求2.4 实践示例 三、Prompt 提示词编写原理3.1 清晰性3.2 具体性3.3 适应性 四、Prompt 提示词编写常用的分隔…

LLaMA Factory微调Llama3模型

LLaMA Factory是一款开源低代码大模型微调框架&#xff0c;集成了业界最广泛使用的微调技术&#xff0c;支持通过Web UI界面零代码微调大模型&#xff0c;目前已经成为开源社区内最受欢迎的微调框架。 &#x1f4a5;GPU推荐使用24GB显存的A10&#xff08;ecs.gn7i-c8g1.2xlarg…

Stable Diffusion【XL Lora】效果太赞了!AI助力服装设计,让服装拆分设计就是这么高效

今天带了一款 非常适合服装设计的SD XL Lora模型——【服装拆分】绪儿 分类背景 XUER&#xff0c;该模型是由绪儿大佬炼制&#xff0c;非常适合饰品服装分类背景。绪儿大佬其实推出了很多非常棒的模型&#xff0c;比如之前非常受大家喜欢的敦煌飞天、超梦幻场景等模型。 那么我…

如何区分住宅代理与数据中心代理?

随着代理市场的蓬勃发展&#xff0c;不同类型的代理服务应运而生&#xff0c;其中住宅代理与数据中心代理尤为常见。如何区分住宅代理与数据中心代理&#xff0c;成为了诸多用户面临的难题&#xff0c;本文将与大家详细探讨如何区分这二种代理。 首先&#xff0c;我们来看住宅代…

【解压即玩】使命召唤 系列-2,回味经典

《使命召唤2》&#xff08;英语&#xff1a;Call of Duty 2&#xff0c;香港和台湾译作“决胜时刻2”&#xff09;于2005年推出&#xff0c;游戏提供了苏军、英军、美军三大阵营的战役&#xff0c;重现了二战中的经典战役&#xff0c;例如莫斯科保卫战、斯大林格勒保卫战、诺曼…

VTK随笔五:VTK数据的读写

VTK应用程序所需的数据可以通过两种途径获取&#xff1a;第一种是生成模型&#xff0c;然后处理这些模型数据(如由类 vtkCylinderSource 生成的多边形数据)&#xff1b;第二种是从外部存储介质里导入相关的数据文件&#xff0c;然后在应用程序中处理这些读入的数据(如vkBMPRead…