C语言学习笔记---键盘输入与屏幕输出

时间:2022-12-27 10:59:42

键盘输入与屏幕输出

1.数据的格式化屏幕输出

    1.1取值范围(由小到大):char,short--->int--->unsigned int--->long--->unsigned long--->float--->double--->long double

c语言进行以上类型的变量的计算或赋值运算时,取值范围小的会先转化为取值范围大的,然后再进行运算(这里用词可能不标准,但是这个意思)。

 

    1.2输出:printf()函数,如printf("%d",a)

      %d:十进制有符号int型(decimal)
      %u:十进制无符号int型(unsigned)
      %f :以小数形式(默认6位小数)输出float,double型 (float)
      %e:以标准指数形式输出float,double型 (exponent)
      %c:以字符形式输出单个字符(char)
      %ld:有符号long    ;    %lu:unsigned long
      %hd:有符号short    ;  %hu:unsigned short
m:输出数据的最小位宽,如:%10f表示位宽为10,以浮点数形式输出
(1)数据位宽大于m:按实际的位宽输出
(2)数据位宽小于m:<1> m:右对齐,左补空格 ,如:%10f:32.6784728 则输出为 _32.678473 (四舍五入原则)
<2> -m:左对齐,右补空格, 如:%-10f:32.6784728 则输出为 32.678473_
%.nf:对浮点数输出n位小数 ,如:%10.4f:32.6784728 则输出为 _ _ _32.6785
%m.nf:位宽为10,输出n位小数
输出%:前面+%,如:printf("%d%%",a);//输出为 10% (设int a = 10)

    

2.数据的格式化键盘输入

     scanf(格式控制字符,输入地址表),如:scanf("%d%f",&a,&b)

          (1)指定的格式字符要与输入的变量类型匹配

        (2)以下三种情况认为输入结束: <1>回车、Tab或空格 <2>达到输入位宽 <3>遇到非法字符

        (3)特殊情况:scanf("%2d%2d",&a,&b); //输入1234,输出仍然是 a = 12,b = 34 因为指定了位宽

        (4)格式字符串中的普通字符原样输入,如:scanf("%d,%d",&a,&b); //输入应为:12,34

        (5)输入时不能指定小数形式的精度(位宽可以指定),scanf()也不能输入换行符,如:scanf("%10.4f",&a); 这个语句会报错

        (6)*表示输入项在读入后不赋给相应的变量, 如:scanf("%2d%*2d%2d",&a,&b); //若输入为123456,则输出为 a = 12, b = 56

        【标注】:scanf()在输入时区分float型和double型,float型用%f,double型用%lf;

                          printf()在输出时,float型和double型均用%f,这是因为编译器将float参数自动转换为double型,因此,printf()无法区分float和double。

 

3. 单个字符的输入输出

            (1) 字符常量:用单引号括起来的一个字符

           (2)转义字符:特殊形式的字符常量 ,如 '\n'表示换行,'\t'表示回车

         (3)字符在内存中的存储:其对应的ASCII码的二进制值

            【注】  \r 是return的简写,表示光标重新回到本行开头。其缩写CR是carriage return就是回车的意思。

                         \n 是new line的简写,表示光标垂直向下移动一行。其缩写LF是Line Feed就是换行的意思

                         Unix系统里,每行结尾只有“<换行>”,即"\n";

                         Windows系统里面,每行结尾是“<换行><回车>”,即“\r\n”;

                         Mac系统里,每行结尾是“<回车>”,即"\n";。

            (4)字符输出函数putchar(ch):向屏幕输出一个字符或字符型变量ch的值

          (5)字符输入函数getchar():如,ch = getchar(); //从键盘接受的字符作为getchar()的函数值

【例】大写字母转化为小写字母(ASCII码值相差32)

#include<stdio.h>

int main() { char ch; printf("press a key and then enter:"); ch = getchar(); ch = ch + ('a' - 'A'); putchar(ch); putchar('\n');//由于putchar只能输出字符,所以用单引号 //输出函数还可以是:printf("%c,%d",ch,ch) ,分别输出字符和其对应的ASCII码的值

     return 0; }