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

文章目录

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

1. 什么是输入输出?

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

2. 标准输入输出函数

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

2.1 printf 函数

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

c 复制代码
printf("格式化字符串", 参数列表);

例如:

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

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

c 复制代码
scanf("格式化字符串", &变量);

例如:

c 复制代码
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 的示例程序:

c 复制代码
#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 占位符读取字符串。例如:

    c 复制代码
    char name[50];
    scanf("%s", name);
    • 注意:scanf 读取字符串时遇到空格会停止。

6. 扩展练习

  1. 修改程序,读取用户的名字并输出。
  2. 尝试读取多个值(如年龄、身高、体重)并输出。
  3. 使用 printf 输出一个表格,包含姓名、年龄和身高。
相关推荐
lys079620008 分钟前
多台亚马逊云服务器,在同一个网段的办法
运维·服务器
2601_9632827710 分钟前
极寒场景专网通信技术实践:黑龙江零下 40℃环境数字对讲组网方案落地解析
大数据·运维·数据库
果果燕40 分钟前
实习笔记(二)NFS 嵌套挂载问题完整复盘
linux·服务器·网络
g3voip1 小时前
工业防爆电话选型指南:防爆参数、SIP接入与调度系统集成
linux·服务器·网络·信息与通信·ip·pbx
CAE二次开发工程师1 小时前
【C语言入门到精通】-基础篇
c语言·开发语言·python
沫璃染墨1 小时前
《从零入门Linux系统篇(十四):系统工具篇·五——Git版本控制:从版本管理到协同开发》
linux·运维·服务器·git·gitee·github
PGCCC1 小时前
Ubuntu 安装 PostgreSQL 16 完整教程(2026):从仓库配置到远程连接
linux·ubuntu·postgresql
常乐か2 小时前
在 Ubuntu 24.04 中编译 Qt 5.15.2 项目完全指南
linux·qt·ubuntu
垂直昵称3 小时前
多线程实现网页接口并发压力测试
linux·服务器·windows
元岳数字人小元3 小时前
数字人开源技术优势解析,助力智能交互普及落地
运维·人工智能·开源·人机交互·交互