C语言输入输出学习笔记

 

 

 

 

 

 

 

一、C语言语句分类
在C语言中,语句是完成特定功能的代码,通常以分号(;)结尾。语句可以分为以下几类:
1. 控制语句
用于控制程序的流程,例如:
if (condition) {
    // 条件成立时执行的代码
} else {
    // 条件不成立时执行的代码
}

 

 

2. 表达式语句
用于执行计算或赋值操作,例如:
a = 1 + 2;

3. 函数调用语句
用于调用函数,例如:
printf("hello\n");

4. 空语句
空语句只包含一个分号,通常用于满足语法要求,例如:
;

5. 复合语句
将多条语句组合在一起,逻辑上视为一条语句,例如:
{
    a = 1 + 2;
    b = 3;
}

二、输入输出操作
1. 输入输出的基本概念
输入输出操作是程序与用户交互的重要方式。输入通常来自键盘,输出通常显示在屏幕上。C语言本身并不直接提供输入输出功能,而是通过标准输入输出库(stdio)提供的函数来实现。
2. 标准输入输出库(stdio)
stdio 是C语言的标准输入输出库,提供了多种输入输出函数。使用时需要包含头文件:
#include <stdio.h>

3. 单个字符的输入输出
getchar 和 putchar 是处理单个字符输入输出的函数。
(1)getchar
•  功能:从键盘读取一个字符。
•  原型:
int getchar(void);

•  返回值:返回输入字符的ASCII码值。
(2)putchar
•  功能:将一个字符输出到屏幕。
•  原型:
int putchar(int c);

•  返回值:返回输出字符的ASCII码值。
示例代码:
#include <stdio.h>
int main(void)
{
    int ret = 0;
    ret = putchar('A'); // 输出字符 'A'
    printf("ret = %d\n", ret); // 输出返回值
    return 0;
}

4. 格式化输入输出
scanf 和 printf 是处理格式化输入输出的函数。
(1)printf
•  功能:格式化输出数据。
•  原型:
int printf(const char *format, ...);

•  参数:
•  format:格式控制字符串,用于指定输出的格式。
•  ...:可变参数,表示要输出的数据。
•  占位符:
•  %d:有符号十进制整数。
•  %u:无符号十进制整数。
•  %x:无符号十六进制整数。
•  %f:十进制浮点数。
•  %c:字符。
•  %s:字符串。
示例代码:
#include <stdio.h>
int main(void)
{
    int a = 10;
    float b = 12.34;
    char c = 'a';
    printf("a = %d\n", a);
    printf("b = %f\n", b);
    printf("c = %c\n", c);
    return 0;
}

(2)scanf
•  功能:格式化输入数据。
•  原型:
int scanf(const char *format, ...);

•  参数:
•  format:格式控制字符串,用于指定输入的格式。
•  ...:可变参数,表示变量的地址。
•  占位符:
•  %d:有符号十进制整数。
•  %u:无符号十进制整数。
•  %x:无符号十六进制整数。
•  %f:十进制浮点数。
•  %c:字符。
•  %s:字符串。
示例代码:
#include <stdio.h>
int main(void)
{
    int a;
    float b;
    char c;
    printf("请输入一个整数:");
    scanf("%d", &a);
    printf("请输入一个浮点数:");
    scanf("%f", &b);
    printf("请输入一个字符:");
    scanf(" %c", &c); // 注意前面的空格,用于跳过空白字符
    printf("输入的整数是:%d\n", a);
    printf("输入的浮点数是:%f\n", b);
    printf("输入的字符是:%c\n", c);
    return 0;
}

5. 格式化输出的辅助控制符
printf 支持多种辅助控制符,用于控制输出的格式。
(1)宽度控制
•  m:指定输出的最小宽度。如果实际数据宽度小于指定宽度,则默认右对齐,左边补空格。
•  -m:指定左对齐。
(2)小数点控制
•  .n:指定小数部分的精度(浮点数)或字符串的最大长度。
(3)类型修饰符
•  l:用于长整型(long int)或双精度浮点型(double)。
•  ll:用于长长整型(long long int)。
•  h:用于短整型(short int)或字符型(char)。
(4)补0
•  0m:在宽度控制时,用0填充。
示例代码:
#include <stdio.h>
int main(void)
{
    int a = 123;
    float b = 12.345678;
    printf("%5d\n", a); // 输出宽度为5,右对齐
    printf("%-5d\n", a); // 输出宽度为5,左对齐
    printf("%05d\n", a); // 输出宽度为5,左补0
    printf("%.2f\n", b); // 小数点后保留2位
    printf("%5.2f\n", b); // 总宽度为5,小数点后保留2位
    return 0;
}

6. 输入输出的注意事项
•  输入多个数据时,数据之间可以用空白符(空格、Tab、回车)分隔。
•  使用 scanf 时,需要提供变量的地址。
•  输入输出的占位符和变量类型必须匹配,否则可能导致段错误。
•  输入字符时,空白符也会被识别。
•  使用 scanf 输入字符串时,可以使用 %s,但需要注意输入的字符串不能超过变量的存储空间。
7. 练习
编写程序,从终端输入数据给变量,并打印变量的值。
示例代码:
#include <stdio.h>
int main(void)
{
    int a, b;
    float x, y;
    char c1, c2;
    printf("请输入两个整数:");
    scanf("%d %d", &a, &b);
    printf("请输入两个浮点数:");
    scanf("%f %f", &x, &y);
    printf("请输入两个字符:");
    scanf(" %c %c", &c1, &c2); // 注意前面的空格,用于跳过空白字符
    printf("a = %d, b = %d\n", a, b);
    printf("x = %.2f, y = %.2f\n", x, y);
    printf("c1 = '%c', c2 = '%c'\n", c1, c2);
    return 0;
}

8. 总结
C语言的输入输出操作是通过标准输入输出库(stdio)提供的函数实现的。printf 和 scanf 是最常用的格式化输入输出函数,支持多种格式控制符和辅助控制符。在使用时需要注意格式控制符与变量类型的匹配,以及输入输出的对齐和精度控制。

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐