1.ACSII 字符实质和整数存储方式相同 //2018年9月16日01:35:54 # include <stdio.h> int main(void) { char ch = '0'; // printf("%c ", ch); printf("%d ", ch); //ASCII码规定字符A以65的整数值表示,字符0以48储存。 return 0; }
2.ASCII char使用的常见问题 # include <stdio.h> int main(void) { char ch = 'a' ; // ok 定义ch // char ch = "ab"; //error 因为"ab"是字符串,不能把字符串赋给单个字符 // char ch = "a" ; //error // char c = 'ab'; //error vc6 可以 // char ch = 'b' ; //error 因为ch变量已经在第四行被定义 ch = 'c'; // ok 赋值ch printf("%c ",ch); return 0; }
3.printf 用法 // 2018年9月16日01:32:16 /* # include <stdio.h> int main(void) { int i = 33; printf("i = %#X ", i); return 0; } */ # include <stdio.h> int main(void) { char i = '33'; printf("i = %d ", i); return 0; }
4.printf中%X及其相关的用法 /* 2018年9月15日13:17:25 功能: 目的: 测试%x %X %#X %#x的用法 */ # include <stdio.h> int main(void) { int x = 47; //100是十进制 printf("%x ",x); //输出结果是:2f printf("%X ",x); //输出结果是:2F printf("%#X ",x); //输出结果是:0X2X %#X推荐使用 printf("%#x ",x); //输出结果是:0x2f return 0; } /* 在Vc++6.0中输出的结果是: ---------------------------- 2f 2F 0X2F 0x2f ---------------------------- 总结: */
5.scanf 用法 //2018年9月16日01:54:38 # include <stdio.h> int main(void) { int i; //scanf("%d, &i"); // error scanf("%d", &i); //&i 表示i的地址 &是一个取地址的符号 printf("i = %d ", i); return 0; }
6.scanf 用法 含非输入控制符 //2018年9月18日02:40:52 # include <stdio.h> int main(void) { int i; scanf("m%d", &i); //m123 正确输入 123 非法的输入 m123n输出 123 printf("i = %d ",i); return 0; }
7.scanf 一次给多个变量键盘赋值 # include <stdio.h> int main(void) { int i, j, k; /* scanf("%d %d", &i, &j); // printf("i = %d j = %d ", i, j); //--ok // printf("i = %d , j = %d ", i, j); //--ok // printf("i = %d j = %d ", i, j); //--ok // printf("i = %dj = %d ", i, j); //--ok // printf("i = %d j = %d ", i, j); //--ok printf("i = %d, j = %d ", i, j); //--ok */ /* // scanf("%d, %d", &i, &j); //--ok // scanf("%d,%d", &i, &j); //--ok scanf("%d ,%d", &i, &j); //--ok 需要在第二个输出参数钱加 , printf("i = %d, j = %d ", i, j); */ /* scanf("%d , %d", &i, &j); //--ok 空格不管多少只计为一个 printf("i = %d, j = %d ", i, j); */ /* printf("请输入三个值中间用逗号隔开:"); scanf("%d,%d,%d", &i, &j, &k); printf("i = %d, j = %d, k = %d ", i, j, k); */ scanf("%d%d%d", &i, &j, &k); printf("i = %d, j = %d, k = %d ", i, j, k); return 0; }
8.scanf对用户非法输入的处理 //2018年9月19日00:14:30 # include <stdio.h> int main(void) { int i; char ch; scanf("%d", &i); printf("i = %d ", i); //... while ((ch = getchar()) != ' ') //! 后面不能有空格 continue; int j; scanf("%d", &j); printf("j = %d ", j); return 0; } /* 在Vc++6.0中输出的结果是: ---------------------------- 1m i = 1 2 j = 2 Press any key to continue ---------------------------- */