C语言字符输入/输出函数(八)
2016-03-11 11:54
302 查看
//用fgets 代替 gets(后者不检测是否存在越界)
char a[10];
char c[] = {"tt"};
const int num = sizeof(a);
fgets(a, num, stdin); //num为数组容器最大元素值(末位占位为结束符 '\0')
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 */