文档详情

慎用scanf.doc

发布:2017-02-12约6.58千字共6页下载文档
文本预览下载声明
1 本意:接收字符串. 写成代码:void main() { char *str; scanf(%s,str); printf(string is: %s\n,str); } 符合愿意代码:char *str=NULL; str=malloc(128*sizeof(char) ); scanf( %s\n, str ); 点评:指针需要你手动给它分配空间,并手动指向该空间如果没有,指针指向哪里,是不确定的 也就是说,你scanf得到的数据存放到哪里是不一定的因此,偶尔有运行正常是你运气好 错误才是正常的 ----------------------------------------------------------------------- 2 本意:接收输入的a,b值. 写成代码:int a,b; scanf(%d%d,a,b); 符合愿意代码:int a,b; scanf(%d%d,a,b); 点评:这是不合法的。Scanf函数的作用是:按照a、b在内存的地址将 a、b的值存进去。“a”指a在内存中的地址。 ------------------------------------------------------------------------ 3 本意:在Input字符串后输入数值. 写成代码:int num; Scanf(Input %d, num); 实际应输入:Input 1234 或者 Input1234 符合愿意代码:int num; printf(Input; scanf(%d,num); ------------------------------------------------------------------------ 4 本意:接收填入的数据. 写成代码:#include stdio.h main() { int num; printf(please input the students score: ; scanf(%d,num); if((num0)||(num100)) { printf(The score put isnt fine. please run and input again.; } else if(num90) { printf(The grade is A.; } else if((num80)(num90)) { printf(.................. ............. } .............. } 实际应输入:这个程序是没错,不过如果有人要存心捣乱, 输入时不是输入数字,而是其 他的什么字符,那么congratulations,这个程序崩溃掉了. 符合愿意代码:#include stdio.h main() {
显示全部
相似文档