C语言入门教程100讲(4)输入输出

news/2025/4/1 7:37:18/

文章目录

      • 1. 什么是输入输出?
      • 2. 标准输入输出函数
        • 2.1 `printf` 函数
        • 2.2 `scanf` 函数
      • 3. 格式化占位符
      • 4. 示例代码
        • 代码解析:
        • 输出结果:
      • 5. 常见问题
        • 问题 1:`scanf` 中的 `&` 是什么作用?
        • 问题 2:`printf` 和 `scanf` 的格式化字符串必须匹配吗?
        • 问题 3:如何读取字符串?
      • 6. 扩展练习

1. 什么是输入输出?

在 C 语言中,输入输出(I/O)是指程序与用户或外部设备之间的数据交互。常见的输入输出操作包括从键盘读取数据(输入)和将数据打印到屏幕(输出)。

2. 标准输入输出函数

C 语言提供了标准库函数 printfscanf,分别用于输出和输入。

2.1 printf 函数

printf 用于将数据格式化输出到屏幕。语法如下:

printf("格式化字符串", 参数列表);

例如:

int age = 25;
printf("年龄: %d\n", age);
  • %d 是格式化占位符,表示输出整数。
  • \n 是换行符,表示输出后换行。
2.2 scanf 函数

scanf 用于从键盘读取数据。语法如下:

scanf("格式化字符串", &变量);

例如:

int age;
scanf("%d", &age);
  • %d 是格式化占位符,表示读取整数。
  • & 是取地址运算符,用于获取变量的地址。

3. 格式化占位符

以下是一些常用的格式化占位符:

占位符数据类型示例
%d整数int age = 25;
%f浮点数float price = 99.99;
%c字符char letter = 'A';
%s字符串char name[] = "Alice";
%lf双精度浮点数double pi = 3.14159;

4. 示例代码

以下是一个使用 printfscanf 的示例程序:

#include <stdio.h>int main() {int age;float height;// 输入年龄和身高printf("请输入年龄: ");scanf("%d", &age);printf("请输入身高 (米): ");scanf("%f", &height);// 输出结果printf("年龄: %d\n", age);printf("身高: %.2f 米\n", height);return 0;
}
代码解析:
  1. 输入部分

    • 使用 scanf 从键盘读取用户的年龄和身高。
  2. 输出部分

    • 使用 printf 将输入的年龄和身高格式化输出到屏幕。
    • %.2f 表示保留两位小数的浮点数。
输出结果:
请输入年龄: 25
请输入身高 (米): 1.75
年龄: 25
身高: 1.75 米

5. 常见问题

问题 1:scanf 中的 & 是什么作用?
  • & 是取地址运算符,用于获取变量的内存地址。scanf 需要知道变量的地址才能将输入的值存储到变量中。
问题 2:printfscanf 的格式化字符串必须匹配吗?
  • 是的。格式化字符串中的占位符必须与变量的数据类型匹配,否则会导致错误或意外行为。
问题 3:如何读取字符串?
  • 使用 %s 占位符读取字符串。例如:
    char name[50];
    scanf("%s", name);
    
    • 注意:scanf 读取字符串时遇到空格会停止。

6. 扩展练习

  1. 修改程序,读取用户的名字并输出。
  2. 尝试读取多个值(如年龄、身高、体重)并输出。
  3. 使用 printf 输出一个表格,包含姓名、年龄和身高。

http://www.ppmy.cn/news/1583327.html

相关文章

嵌入式Linux驱动开发基础知识(一)

嵌入式Linux驱动开发基础知识点精要 一、开发环境搭建 交叉编译工具链 安装&#xff1a;arm-linux-gnueabihf-gcc验证&#xff1a;arm-linux-gnueabihf-gcc -v 内核编译与设备树 编译内核&#xff1a;make Image dtbs设备树文件&#xff1a;.dts&#xff08;源码&#xff09; …

JVM 学习前置知识

JVM 学习前置知识 Java 开发环境层次结构解析 下图展示了 Java 开发环境的层级关系及其核心组件&#xff0c;从底层操作系统到上层开发工具&#xff0c;逐步构建完整的开发与运行环境&#xff1a; 1. 操作系统&#xff08;Windows, MacOS, Linux, Solaris&#xff09; 作用&…

在本地Windows机器加载大模型并生成内容

本篇演示在本地机器下载和加载大模型并获取AI产生的内容。简单起见&#xff0c;使用的大模型是Qwen2.5-0.5B-Instruct&#xff0c;整个模型的所有文件不到1G。 Qwen2.5-0.5B-Instruct 是阿里巴巴云 QWen 团队基于 Transformer 架构开发的轻量级指令调优语言模型&#xff0c;专…

无人设备遥控器之调度自动化技术篇

一、技术原理 信息采集与处理&#xff1a; 通过传感器、仪表等设备采集无人设备的各种数据&#xff0c;如位置、速度、状态等。 将采集到的数据传输到调度自动化系统中进行处理和分析&#xff0c;以获取设备的实时状态。 系统建模与优化&#xff1a; 调度自动化系统会根据…

Java后端API限流秘籍:高并发的防护伞与实战指南

目录导航 📜 🛡️ 为什么需要API限流?🧠 主流限流算法大解析👩‍💻 阿里巴巴的限流实践📏 四大黄金定律🤼 限流策略组合拳🏆 限流场景实战💻 技术实现方案🌟 最佳实践分享📈 结语与展望📚 推荐阅读 1. 🛡️ 为什么需要API限流? 在高并发环境中,未…

Mac上安装和配置adb学习总结

1、安装&#xff1a; 命令行安装 brew install android-platform-tools 2、adb 的工作原理 adb 提供对 Unix shell&#xff08;可用来在设备上运行各种命令&#xff09;的访问权限。它是一种客户端-服务器程序&#xff0c;包括以下三个组件&#xff1a; 客户端&#xff1a;用…

C# SerialPort 使用详解

总目录 前言 在工业控制、物联网、嵌入式开发等领域&#xff0c;串口通信&#xff08;Serial Port Communication&#xff09;是连接串行设备&#xff08;如条码扫描器、GPS接收器等&#xff09;与计算机的重要手段。C# 提供了内置的 SerialPort 类&#xff0c;简化了串口开发…

HarmonyOS NEXT (三):分布式数据管理

HarmonyOS NEXT &#xff08;三&#xff09;&#xff1a;分布式数据管理 一、分布式数据同步原理 1.1 数据对象生命周期管理 // 分布式数据对象声明&#xff08;ArkTS&#xff09; Observed class DistributedNote {id: string generateUUID();Tracked content: string ;Tr…