您的位置:首页 > 其它

C经典 scanf 、gets 与fgets区别

2016-05-04 19:25 417 查看
#include <stdio.h>
#include <string.h>
int main(int argc, const char * argv[])
{

/**
char ch[10];
scanf("%s",&char); //不能接收空格,接收大于10的字符

gets(ch) ; //不安全,如果如果输入的是10个字符,没空间存储\0,接收大于10的字符,会越界

fgets(ch); //会自动截取,并把最后的一个变为\0
char *fgets(ch, len, stdin);

*/

char ch[10];
fgets(ch, sizeof(ch), stdin);
printf("%s\n", ch);
printf("%d\n", strlen(ch));//不包含\0

//    if (ch[strlen(ch)-1] == '\n') {
//        ch[strlne(ch)-1] = '\0';
//    }

for (int i = 0; i < 10; i ++) {
printf("%d\t", ch[i]);
}
printf("\n");

//不自动换行,puts可以自动换行
fputs(ch, stdout);

printf("\n");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: