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语言输入输出的基础,掌握这些内容后,你就可以编写基本的交互式程序了。

相关推荐
我是坏垠38 分钟前
Crypto、Cipher与Password:Java加密开发的三个核心概念
java·开发语言·python
white_ant1 小时前
JDK LTS 版本升级迁移注意事项大全
java·开发语言
Bobolink_1 小时前
跨境业务网络环境评估,“干净、一致、独享”三个关键指标
开发语言·网络·php·跨境网络·网络环境
你怎么知道我是队长1 小时前
JavaScript的变量和数据类型介绍
开发语言·javascript·ecmascript
xingke1 小时前
C 语言多文件编程:(一)头文件、extern、编译链接
c语言·开发语言·多文件
战族狼魂2 小时前
GPT-5.6与Grok 4.5重磅发布
人工智能·算法·大模型·大语言模型
白日焰火12 小时前
基于 OpenSpec 实现规范驱动开发
算法·交互
戮漠summer2 小时前
Missing Semester 计算机教育中缺失的一课 Lecture 01 Shell
开发语言·后端·scala
jinyishu_2 小时前
C++ string使用方法
开发语言·c++
imuliuliang2 小时前
关于图搜索算法的性能建模与可预测性研究7
算法