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

相关推荐
大侠归来3 小时前
C 语言 | 在函数中操作数组
c语言·c++·算法
liangshanbo12153 小时前
JavaScript 面试题:Object.keys() 的返回顺序是无序的吗?
开发语言·javascript·ecmascript
怕浪猫8 小时前
GEO 优化到底是什么?AI时代内容创作者必须懂的新技能
算法·面试·github
朝朝辞暮i9 小时前
C++ 第 23 课:class —— 开始真正进入面向对象
开发语言·c++·算法
Evand J10 小时前
【MATLAB例程】三维RRT+APF避障路径规划与到达角(AOA)定位算法|三维路径优化与定位仿真例程
算法·matlab·路径规划·代码·定位·rrt·aoa
小师兄吃牛肉10 小时前
C语言篇:宏
c语言·开发语言
郑同学的笔记10 小时前
【c++随笔28】strcmp 和 memcmp对比
开发语言·c++
炸膛坦客11 小时前
单片机开发工具篇:(十四)配置输出 .map 文件及其本地路径
c语言·单片机·嵌入式硬件
言乐611 小时前
Python根据无法识别搜索词找出可能输入内容模型
开发语言·python·django·virtualenv·pygame
weixin_3077791311 小时前
有限产能智能排产与动态重排智能体:从需求解构到技术实现
开发语言·人工智能·算法·架构