C语言程序设计(四)

第四章 键盘输入和屏幕输出

转义字符

\n 换行,光标移到下一行的起始位置
\r 回车(不换行),光标移到当前行的起始位置
\0 空字符
\t 水平制表
\v 垂直制表
\b 退格
\f 走纸换页
\a 响铃报警提示音
\" 一个双引号
\' 一个单引号
\\ 一个反斜线
\? 问号
\ddd 1到3位八进制ASCII码值所代表的字符
\xhh 1到2位十六进制ASCII码值所代表的字符

 

每个字符都有一个等价的整型值与其相对应,这个整型值就是该字符的ASCII码

从这个意义上而言,可将char型看成是一种特殊的int型

对char型数据和int型数据进行相互转换不回丢失信息

 

Unicode——国际标准化组织制定的更强大的编码

 

//L4-1

#include <stdio.h>
main()
{
    char  ch;
    printf("Press a key and then press Enter:");  
    ch = getchar(); /* 从键盘输入一个字符,按回车键结束输入,该字符被存入变量ch */
    ch = ch + 32;   /* 将大写英文字母转换为小写英文字母 */
    putchar(ch);    /* 在屏幕上显示变量ch中的字符 */
    putchar('\n');  /* 输出一个回车换行控制符 */
}

 

//运行结果
Press a key and then press Enter:B
b

 

 

函数getchar()和putchar()是C标准库中专门用于字符输入/输出的函数

函数getchar()没有参数

 

printf(格式控制字符串,输出值参数表)

 

格式控制字符串包括:格式转换说明、需原样输出的普通字符

 

//L4-2

#include <stdio.h>
main()
{
    char  ch;
    printf("Press a key and then press Enter:");  
    ch = getchar();
    ch = ch + 32;  
    printf("%c, %d\n", ch, ch); /* 分别输出变量ch中的字符及其ASCII码值 */
}

 

//运行结果
Press a key and then press Enter:B
b, 98

 

 

printf中的()格式修饰符

  • l:long
  • L:long double
  • h:short
  • m(m为整数):指定域宽(输出项输出时所占的列数)
  • .n(n为非负整数):指定显示精度

 

//L4-3

#include  <stdio.h>
main()
{
    const double pi = 3.14159;
    double r, circum, area;
    printf("Input r:");
    scanf("%lf", &r);
    circum = 2 * pi * r;
    area = pi * r * r;
    printf("printf WITHOUT width or precision specifications:\n");
    printf("circumference = %f, area = %f\n", circum, area);
    printf("printf WITH width and precision specifications:\n");           
    printf("circumference = %7.2f, area = %7.2f\n", circum, area);/*使用域宽和精度说明符,数据所占域宽为7,显示的精度为2*/
}
//运行结果
Intput r:6
printf WITHOUT width or precision specification:
circumference=37.699111,area=113.097334
printf WITH width or precision specification:
circumference=  37.70,area= 113.10//注意,小数点也占一个字符位置

 

 

scanf(格式控制字符串,参数地址表)

在用scanf()输入数值型数据时,遇到以下几种情况都会认为数据输入结束

  • 遇空格符、回车符、制表符
  • 达到输入域宽
  • 遇非法字符输入

 如果函数scanf()的格式控制字符串中存在除格式说明符之外的其他字符,那么这些字符必须在输入数据时由用户从键盘原样输入

 

//L4-4

#include  <stdio.h>
main()
{
    int  a, b;
    scanf("%d %d", &a, &b);
    printf("a = %d, b = %d\n", a, b);
}

 

//运行结果
12 34
a = 12, b = 34

 

 

scanf("%d%*c%d", &a, &b);允许用户用任意字符作为分隔符输入数据

当scanf()返回指定的数据项数时,表示函数被调用成功

当scanf()返回EOF值时,表示函数被调用失败

 

//L4-5

#include <stdio.h>
main()
{
    int    data1, data2;
    char  op;
    printf("Please enter the expression data1 + data2\n");
    scanf("%d%c%d",&data1, &op, &data2);
    printf("%d%c%d = %d\n", data1, op, data2, data1+data2);
}

 

//运行结果
Please enter the expression data1 + data2
12+3
12+3 = 15

 

 

//L4-6

#include <stdio.h>
main()
{
    int    a;
    char  b;
    float  c;
    printf("Please input an integer:");
    scanf("%d", &a);
    printf("integer: %d\n", a);
    printf("Please input a character:");
    scanf(" %c", &b); /*在%c前面加一个空格,将存于缓冲区中的回车符读入*/
    printf("character: %c\n", b);
    printf("Please input a float number:");
    scanf("%f", &c);
    printf("float: %f\n", c);
}

 

//运行结果
Please input an integer:12
integer: 12
Please input a character:a
character: a
Please input a float number:3.5
float: 3.500000 
上一篇:Python学习笔记:格式化输出


下一篇:配置vscode同步大神玺哥的配置