C语言--printf与scanf

时间:2022-09-05 22:01:18

拓展:计算机输出的是它的补码

字符串格式化输出和输入

          字符串是内存中一段连续的char空间,以\0结尾  

          首先对于CPU来讲:所有的计算工作都是在寄存器里面完成的,不能直接对内存的数进行运算的,它只能把内存里                      面的数拿到寄存器里面算完,在退回去内存,它不能直接在内存里面算的 

            - :左对齐

            0 :将输出的前面补上0,直到占满指定列宽为止(不可以搭配使用"-")


printf函数:

e.g. 

                        #include <stdio.h>
#define STR "hello"
#define ABC 100


int main()

{
//printf("%s\n","hello world,");//在最后有一个0是看不到的,它代表的是字符串的结尾,字符串就是一个连续的char类型的空间
//char c = 't';
//printf("%s,%d,%c\n",STR,ABC,c);
/printf("%%");//输出%需要写%%
//long l = 100;
//printf("%4ld",l);//这个ld表示输出一个long类型的整数,一般是附加在d,u,x,o前面,表示长整数
//4ld表示至少要显示4个字符,但是就算你2ld小于它本身的字节,它也是不会把里面的内容丢失的,但这是右对齐,想要左对齐%-4ld
//如果是07ld,那么多余的字节用0来补齐,但是0和-不能混用,之所以不能混用,是因为如果是右对齐,你输入的是100,但是它是会自动补齐0的,那么原来的数值就会变化
        printf("%x\n",i);

return 0;

        }

putcher函数:只能打印字符,不能答应字符串。它一次只能输出一个字符

            e.g. 打印hello

            putcher('h');

            putcher('e');

            putcher('l');

            putcher('l');

            putcher('o');

    

scanf函数: 

                #define _CRT_SECUTE_NO_WARNINGS
                #include <stdio.h>
                #define STR "hello"
                #define ABC 100
                #pragma waring(disable:4996)


                int main()

                {
            int a = 0;
             int b = 0;
            scanf("%d",&a);//一定要用&取变量的地址:通过键盘读到用户输入的数字,把它赋给a
            scanf("%d",&b);//一定要用&取变量的地址:通过键盘读到用户输入的数字,把它赋给b
            printf("a+b=%d\n",a+b);
            return 0;
                 }

  #define _CRT_SECUTE_NO_WARNINGS : 在VS中,VS觉得数据类型不安全,意思是你可以定义一个红来忽略这个错误

 #pragma waring(disable:4996) : 强制地屏蔽掉编号为4996的错误,告诉编译器我这个不是错误

这个是VS特有的属性



scanf 通过键盘读取用户输入,放入变量中,记得参数一是变量的地址(&);