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

相关推荐
兔兔兔兔12 分钟前
记录C++ 11
开发语言·c++
撩得Android一次心动13 分钟前
Kotlin 语言【知识点整理2】
android·开发语言·kotlin
不会就选b17 分钟前
Linux之线程池(一)
java·开发语言
wabs66620 分钟前
关于栈【力扣150.逆波兰表达式求值的思考】
数据结构·c++·算法·leetcode··代码随想录
ZGi.ai21 分钟前
ZGI 父子分块:连接检索片段与完整上下文
人工智能·算法·知识库·企业ai·zgi·父子分块
IT毕设实战小研26 分钟前
基于大数据的二手车数据分析与预测
java·大数据·后端·爬虫·python·算法·课程设计
Allen_LVyingbo29 分钟前
医疗AI可扩展网格信息系统中网格计算技术的智能优化
大数据·人工智能·python·算法·机器学习·django·健康医疗
牛油果子哥q32 分钟前
C++序列式容器深度精讲:vector/list/deque底层实现、扩容原理、迭代器失效、性能对比、工程选型避坑
开发语言·c++·list
WBluuue38 分钟前
数据结构与算法:带权并查集
数据结构·c++·算法
熊猫_豆豆40 分钟前
黑洞的粒子产生(霍金1975年论文)第二部分
人工智能·数学·算法·机器学习·量子力学·大学物理·黑洞