#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
//scanf
BOOL A=128;
if (A) {
printf("真--A:%d\n",A);
}else{
printf("0--A:%d\n",A);
}
printf("%ld",sizeof(A));
bool B=128;
if (B ) {
printf("真--B:%d\n",B);
}else{
printf("假--B:%d\n",B);
}
// 第二个scanf加空格和不加空格的区别:=====》在scanf()中键入一个空格,可以吸收上一次缓冲区内的回车或空格符,可以把这里的空格的长度无限增大
printf("输入字符:\n");
char char1=0,char2=0;
scanf("%c",&char1);
scanf("%c",&char2);//第二次scanf的时候,会从buffer中读取字符,而此时就是读取到了上一次的回车符。
printf("char1=%c char2=%c",char1,char2);
printf("输入字符:\n");
char char3=0,char4=0;
scanf("%c",&char3);
scanf(" %c",&char4);//在第二次scanf中格式符前加上一个空格就可以很轻松的解决上一次遗留在buffer中的空格或者回车,而且长度还是不限制的,这时的空格的作用,就是吸收存在buffer中的回车符和空格符或者Tab符。
printf("char3=%c char4=%c",char3,char4);
//对于字符串数组和字符串指针变量,由于数组名和指针变量本身就表示地址,所以不用加&
char string0[3][20]={0};
printf("Please input some strings:\n");
for (int i=0; i<3; i++) {
scanf("%s",string0[i]);
getchar();
}
printf("Input those strings:\t");
for (int i=0; i<3; i++) {
printf("%s\t",string0[i]);
}
printf("\n");
//在输入字符数据的时候,如果没有非格式字符的输入的话,系统会认为所有输入的均为有效字符,比如:
char ch0=0,ch1=0,ch2=0;
scanf("%c%c%c",&ch0,&ch1,&ch2);
getchar();//这个真的是很重要,下次一定得记住了,scanf在哪就带着getchar()
printf("%c\t%c\t%c\t",ch0,ch1,ch2);
//输入a b c则ch0=a,ch1=空格,ch2=b
scanf("%c %c %c",&ch0,&ch1,&ch2);
printf(":%c %c %c",ch0,ch1,ch2);
// 如何让scanf接受带有空格的字符串
// 要用到%[^\n]
printf("请输入同学的姓名,输入时姓和名用空格隔开:\n");
char _names[5][20]={0};
for (int i=0; i<5; i++) {
scanf("%[^\n]",_names[i]);
getchar();
}
for (int i=0; i<5; i++) {
printf("第%d个人的姓名:%s\t",i,_names[i]);
}
printf("\n");
// scanf读取键入的字符的易错点
char _char0=0;
char _char1=0;
printf("输入_char0的值:\n");
scanf("%c",&_char0);
getchar();
printf("_char0读取的值显示出来为:%c\n",_char0);
printf("输入_char1的值:\n");
scanf("%c",&_char1);
getchar();
printf("_char1读取的值显示出来为:%d\n",_char1);//_char1的ASCII码值为10,对应的字符为'\0',由此可以看出,其实第二个scanf接收的字符是上一次键入的回车符,这就是键盘缓冲区滞留的问题。这个问题要用getchar()来解决。
//键盘缓冲区是针对对个scanf
char _char2=0;
char _char3=0;
printf("输入_char2的值:\n");
scanf("%c",&_char2);
getchar();//getchar()就是可以接收空格或者回车,吸收缓冲区中残留的字符
printf("_char2读取的值显示出来为:%c\n",_char2);
printf("输入_char3的值:\n");
scanf("%c",&_char3);
printf("_char3读取的值显示出来为:%c\n",_char3);
return 0;
}