C语言学习-第三章 简单的C程序设计——顺序程序设计③

180 阅读3分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第5天,点击查看活动详情

printf函数

  • 头文件:stdio.h
  • 原型:int printf(const char *format, ...)
  • format: 格式控制字符串
    • d:输出有符号的十进制整数
    • c:输出一个字符
    • s: 输出一个字符串
    • f:用来输出实数(包括单、双精度、长双精度),以小数形式输出
      • 基本型:%f,实数中的整数部分全部输出,小数部分输出6位
      • 指定数据宽度和小数位数,用%m.nf 如%7.2 指定输出的数据占7列,包括2位小数,其后一位采取四舍五入方法处理
      • 输出的数据向左对其,用%-m.nf 当长度不超过m时,数据向左靠,右端补空格
    • e %e 以指数形式输出实数
    • 其他格式符
  • ...:可变参数列表
  • 返回值:输出字符的数量

scanf函数

  • 头文件:stdio.h
  • 原型:int scanf(const char *format, ...)
  • format:格式控制字符串
  • ...:可变参数列表
  • 返回值:成功读入的参数个数

使用scanf函数时应注意的问题:

  • scanf函数中的格式控制后面应当是变量地址
  • 如果在格式控制字符串中除了格式声明以外还有其他字符,则在输入数据时在对应的位置上应输入与这些字符相同的字符。如
scanf("a=%f,b=%f,c=%f", &a, &b, &c);
// 输入数据时,应在对应的位置上输入同样的字符,即输入
a=1,b=2,c=3

输入数值时,在两个数值直接需要插入空格(或其他分隔符),以使系统能区分两个数值。在连续输入字符时,在两个字符之间不要插入空格或其他分隔符(除非在scanf函数中的格式字符串中有普通字符,这时在输入数据时要在原位置插入这些字符),系统能区分两个字符

  • 在用"%c"格式声明输入字符时,空格字符和“转义字符”中的字符都作为有效字符输入

  • 在输入数值数据时,如果输入空格、回车、Tab键或遇非法字符(不属于数值的字符),认为该数据结束

putchar函数

字符输出函数,输出字符变量c的值,输出的是一个字符

一般形式:putchar(c)

getchar()函数

字符输入函数,没有参数,从计算机终端(一般是键盘)输入一个字符,即计算机获得一个字符。返回值就是从输入设备得到的字符,只能接收一个字符

练习

#include <stdio.h>

int main() {
//    // 将华氏法表示的温度(如64°F),转换为以摄氏法表示的温度(如17.8°C)——转换公式 C = 5/9(f-32)
//    float f, c; // 定义f和c为单精度浮点型变量
//    f = 64.0;
//    c = (5.0/9)*(f-32);
//    printf("f=%f\nc=%f", f, c);
    int a, b;
    while(scanf("%d%d", &a, &b) != EOF) { // EOF: 文件描述符 end of file  EOF => -1
        printf("%d + %d = %d\n", a, b, a + b);
    }
    return 0;
}

image.png

#include <stdio.h>

int main() {
    int n;
    scanf("%d", &n);
    printf(" has %d digits\n", printf("%d", n));
    return 0;
}

image.png

#include <stdio.h>

int main() {
//    使用printf函数,求解一个数字n的十进制表示的数字位数
    int n;
    scanf("%d", &n);
    n = printf("%d", n);
    printf(" has %d digtis\n", n);
    return 0;
}

image.png

printf函数家族

  • printf:向标准输出
  • sprintf:向字符数组输出 s:string
  • fprintf:向文件输出 f:file