Re: [问题] dev c++ 中 scanf 疑问 -再追问-

楼主: infinitim37 (世界‧由我定义)   2014-04-25 18:44:29
原本我没有要另开新文章,不过因为我表达不好,
我想再开新文章请问,
code如下:
int main()
{
char ch[10];
printf("keyin string:");
scanf("%9s",ch);
printf("hi , %s , how are you?",ch);
system("pause");
return 0;
}
小弟已经把 %s 改为 %9s, 的确即使超过9各字符,最后还是以9各字符输出,
不过小弟又有问题,假如我输入 10各字符, 那取到第9各后,第10个就是 \0
不过原本我输入第10各字符,会跑到哪边去呢?是编译器自动砍掉?
还是会向后挪一位? 还是complier 就根本不管你输入,超过9个就视而不见了?
不好意思,小弟是c语言新手,c语言真的是浩瀚无穷~~~
还想请问各位大大,学c语言是否要多看 ansi-c 的标准规范呢?
我有去试着看 stdio.h 里面的东西,不过里面到底是在讲什么?? 好深奥~~~
感谢各位大大指导~~~~~
作者: Qbsuran (Qbsuran)   2014-04-25 19:21:00
就是视而不见
作者: bibo9901 (function(){})()   2014-04-25 20:12:00
原来输入的第10个字会留在buffer里面你再scanf一次就会看到了还有, 硬把16个字塞进只有10格的ch会发生什么事, 这不是编译器可以预知的
作者: MOONRAKER (㊣牛鹤鳗毛人)   2014-04-26 10:44:00
stdio.h里面的东东根本不用看好ㄇ 想太多
作者: jimboshih (友友)   2014-04-27 04:48:00
112 安安
楼主: infinitim37 (世界‧由我定义)   2014-04-28 09:57:00
感谢各位大大,小弟虚心受教,感谢ING~~~

Links booklink

Contact Us: admin [ a t ] ucptt.com