//用fgets 代替 gets(后者不检测是否存在越界)
char a[10];
char c[] = {"tt"};
const int num = sizeof(a);
fgets(a, num, stdin); //num为数组容器最大元素值(末位占位为结束符 '\0')
//(二)输入函数 getchar 遍历每个字符,直到\n换行结束
while (getchar()!='\n') {
printf("1111\n");
}
/* dfd
1111
1111
1111
*/
//输入函数 gets 不检查目标数组是否能容纳输入,不安全 ,读取到换行符,会丢弃
while (gets(ch)!= NULL) {
printf("1111");
break;
}
/* dfd
111
*/
//输入函数 fgets 检查到结束,保存换行符 \n
char *asd = fgets(ch, 10-1, stdin); //读取最多n-1个字符或者读完一个换行符为止 , 第三个参数说明从哪里读取数据,stdin(键盘输入)
/* ffddf
"ffddf\n"
*/
//(三)输出函数 puts 自带以\n结束,自动换行
puts("sdfsadf");
const char a[] = "qettwer";
puts(a);
puts(&a[3]);
puts(a+3);
puts(DES);
/*
sdfsadf
qettwer
twer
twer
一个宏字符串
*/
//输出函数 fputs 不自动添加换行
fputs(a, stdout);
printf("\n");
/*
qettwer
*/
//输出函数 putchar
//以下方法输出结果一样,第二个while循环更为简洁
char *ss = "qweruiop";
int i = 0;
while (ss[i] != '\0') {
putchar(ss[i++]);
}
//*ss 等价于 *ss != '\0'
while (*ss) {
putchar(*ss++);
printf("\n");
}
printf("\n");
while (*ss != '\0') {
putchar(*ss++); //ss++ 比 *取值优先 ,最后输出指针对应的值
printf("\n");
}
/*
q
w
e
r
u
i
o
p
*/