C语言编程基础,输入与输出

C语言输入和输出基础

C语言通过标准库函数实现基本的输入和输出操作。以下是最常用的I/O函数及其用法:

1. 标准输入输出头文件

复制代码
#include <stdio.h>

2. 输出函数

2.1 printf() - 格式化输出

复制代码
#include <stdio.h>

int main() {
    int num = 10;
    float pi = 3.14159;
    char ch = 'A';
    char str[] = "World";
    
    // 基本输出
    printf("Hello, World!\n");
    
    // 输出整数
    printf("整数: %d\n", num);
    
    // 输出浮点数
    printf("浮点数: %.2f\n", pi);  // 保留两位小数
    
    // 输出字符
    printf("字符: %c\n", ch);
    
    // 输出字符串
    printf("字符串: %s\n", str);
    
    // 多个变量输出
    printf("整数: %d, 浮点数: %f, 字符: %c\n", num, pi, ch);
    
    return 0;
}

2.2 putchar() - 输出单个字符

复制代码
#include <stdio.h>

int main() {
    char ch = 'A';
    
    putchar(ch);  // 输出字符A
    putchar('\n');  // 输出换行
    
    return 0;
}

3. 输入函数

3.1 scanf() - 格式化输入

复制代码
#include <stdio.h>

int main() {
    int age;
    float salary;
    char name[50];
    
    // 输入整数
    printf("请输入年龄: ");
    scanf("%d", &age);
    
    // 输入浮点数
    printf("请输入工资: ");
    scanf("%f", &salary);
    
    // 输入字符串
    printf("请输入姓名: ");
    scanf("%s", name);  // 注意:不能输入带空格的字符串
    
    // 输出结果
    printf("\n姓名: %s\n年龄: %d\n工资: %.2f\n", name, age, salary);
    
    return 0;
}

3.2 getchar() - 获取单个字符

复制代码
#include <stdio.h>

int main() {
    char ch;
    
    printf("请输入一个字符: ");
    ch = getchar();  // 获取用户输入的第一个字符
    
    printf("您输入的字符是: ");
    putchar(ch);
    putchar('\n');
    
    return 0;
}

4. 特殊输入情况处理

4.1 输入带空格的字符串

复制代码
#include <stdio.h>

int main() {
    char sentence[100];
    
    printf("请输入一句话(可以包含空格): ");
    
    // 方法1: 使用gets()(不推荐,有安全风险)
    // gets(sentence);
    
    // 方法2: 使用fgets()(推荐)
    fgets(sentence, sizeof(sentence), stdin);
    
    printf("你输入的是: %s", sentence);
    
    return 0;
}

4.2 清空输入缓冲区

复制代码
#include <stdio.h>

int main() {
    int num;
    char ch;
    
    printf("请输入一个整数: ");
    scanf("%d", &num);
    
    // 清空输入缓冲区
    while (getchar() != '\n');
    
    printf("请输入一个字符: ");
    scanf("%c", &ch);
    
    printf("整数: %d, 字符: %c\n", num, ch);
    
    return 0;
}

5. 文件输入输出

复制代码
#include <stdio.h>

int main() {
    FILE *file;
    char text[] = "Hello, File!";
    char buffer[100];
    
    // 写入文件
    file = fopen("example.txt", "w");
    if (file != NULL) {
        fprintf(file, "%s\n", text);
        fclose(file);
    }
    
    // 读取文件
    file = fopen("example.txt", "r");
    if (file != NULL) {
        fgets(buffer, sizeof(buffer), file);
        printf("文件内容: %s", buffer);
        fclose(file);
    }
    
    return 0;
}

6. 常用的格式说明符

格式符 用途 示例
%d 十进制整数 int
%f 浮点数 float
%c 单个字符 char
%s 字符串 char\[\]
%lf 双精度浮点数 double
%u 无符号整数 unsigned int
%x 十六进制整数
%o 八进制整数
%p 指针地址
%% 输出%字符

7. 实用示例

复制代码
#include <stdio.h>

int main() {
    int a, b;
    float result;
    
    // 输入两个整数
    printf("请输入两个整数(用空格分隔): ");
    scanf("%d %d", &a, &b);
    
    // 计算和
    result = a + b;
    printf("和: %d + %d = %.0f\n", a, b, result);
    
    // 计算平均值
    result = (a + b) / 2.0;
    printf("平均值: ( %d + %d ) / 2 = %.2f\n", a, b, result);
    
    return 0;
}

注意事项

  1. 使用scanf()时,变量前要加&(取地址符),但数组名不需要

  2. 格式化字符串中的格式说明符要与变量类型匹配

  3. 注意输入缓冲区的问题,特别是混合输入不同类型时

  4. 使用fgets()代替gets(),避免缓冲区溢出

  5. 检查文件操作是否成功(返回值不为NULL)

这些是C语言输入输出的基础,掌握这些内容后,你就可以编写基本的交互式程序了。

相关推荐
玖玥拾6 分钟前
C/C++ 基础笔记(二)
c语言·c++
Zldaisy3d15 分钟前
全球唯一仿真驱动自适应扫描路径新版本发布,金属3D打印工艺开发进入算法时代
算法·3d
Hanniel18 分钟前
Python 元类(下):进阶与实战建议
开发语言·python
小江的记录本19 分钟前
【JVM虚拟机】类加载机制:类加载全流程:加载→验证→准备→解析→初始化(附《思维导图》+《面试高频考点清单》)
java·jvm·spring boot·算法·安全·spring·面试
会编程的土豆22 分钟前
Go interface 底层的 itab 到底是什么
开发语言·后端·golang
千纸鹤の脉搏27 分钟前
多线程的初步了解---进程与线程
java·开发语言·学习·线程
秋田君1 小时前
Qt 5.12.8 下载与安装教程(附网盘资源)
开发语言·qt
故事和你911 小时前
洛谷-【动态规划2】线性状态动态规划4
开发语言·数据结构·c++·算法·动态规划·图论
不吃土豆的马铃薯1 小时前
Socket 网络编程实战教程
linux·服务器·开发语言·网络·c++·算法
小成202303202651 小时前
从C到C++
开发语言·c++