拓展:计算机输出的是它的补码
字符串格式化输出和输入
字符串是内存中一段连续的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 通过键盘读取用户输入,放入变量中,记得参数一是变量的地址(&);