目 录CONTENT

文章目录

C语言程序设计(四) 键盘输入和屏幕输出

moke
2024-03-02 / 0 评论 / 0 点赞 / 39 阅读 / 0 字

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

转义字符

\n换行,光标移到下一行的起始位置
\r回车(不换行),光标移到当前行的起始位置
\0空字符
\t水平制表
\v垂直制表
\b退格
\f走纸换页
\a响铃报警提示音
\"一个双引号
\'一个单引号
\\一个反斜线
\?问号
\ddd1到3位八进制ASCII码值所代表的字符
\xhh1到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');  /* 输出一个回车换行控制符 */
}
```c
//运行结果
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码值 */
}
```c
//运行结果
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*/
}
```c
//运行结果
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);
}
```c
//运行结果
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);
}
```c
//运行结果
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);
}
```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 
博主关闭了所有页面的评论