作者在 2011-08-03 16:48:20 发布以下内容
/*
时间:2011年8月3日16:36:57
目的:测试scanf的用法及注意事项
*/
# include <stdio.h>
int main(void)
{
int i;
printf("请输入一个数,比如123,按回车结束\n"); //最好在使用scanf前用printf做一下输入提示,否则弹出窗口只出现一个光标,会让人无所适从
scanf("%d",&i); //运行后在弹出的窗口输入数值,回车结束。这里输入123为变量i赋值
//注意 & 是取地址符,scanf中必须使用&i,而不能直接写成i
printf("i = %d\n",i); //显示的结果为i = 123
int j, k;
printf("请输入两个数,中间用逗号隔开,比如4,5,按回车结束\n");
scanf("%d,%d",&j,&k); //这里使用了非输入控制符逗号,所以在弹出的窗口也必须按此格式输入逗号,如4,5。
//注意 \n 也是一个非输入控制符,如果使用了\n,则必须在输入数字后也照原样输入\n,所以这与printf不同,scanf不使用\n
printf("j = %d, k = %d\n",j,k); //显示j = 4, k = 5
int r, s;
printf("试试不按规定输入,比如输入45,看看会发生什么,按回车结束\n");
scanf("%d,%d",&r,&s);
printf("r = %d, s = %d\n",r,s); //这里如输入了45,则45会一起被认为是第一个数字赋值给r,而第二个数字会出错,最后显示r = 45, s = -858993460
int m, n;
printf("再试试不按规定输入,比如输入4 5,看看会发生什么,按回车结束\n");
scanf("%d,%d",&m,&n);
printf("m = %d, n = %d\n",m,n); //这里如果不按规定输入,比如输入了4 5,则第二个数字会出错,最后显示m = 4, n = -858993460
/*
char ch;
while ( (ch=getchar()) != '\n')
continue;
*/
//代码A 这段代码可以帮助解决前面代码出错对后面代码的影响
int a, b;
printf("再正确输入一次,比如输入4,5 ,看看前面出现的错误会对后面造成什么影响,按回车结束\n");
scanf("%d,%d",&a,&b);
printf("a = %d, b = %d\n",a,b); //这里还没等输入,就会显示结果 a = 5, b = -858993460, 因为之前的错误,使得上次输入的5并没能赋值给n而留到这次赋给了a
return(0);
}
/*
在VC++6.0中的运行结果为:
——————————————
请输入一个数,比如123,按回车结束
123
i = 123
请输入两个数,中间用逗号隔开,比如4,5,按回车结束
4,5
j = 4, k = 5
试试不按规定输入,比如输入45,看看会发生什么,按回车结束
45
r = 45, s = -858993460
再试试不按规定输入,比如输入4 5,看看会发生什么,按回车结束
4 5
m = 4, n = -858993460
再正确输入一次,比如输入4,5 ,看看前面出现的错误会对后面造成什么影响,按回车结
束
a = 5, b = -858993460
Press any key to continue
——————————————
将代码A取消注释后的运行结果
——————————————
请输入一个数,比如123,按回车结束
123
i = 123
请输入两个数,中间用逗号隔开,比如4,5,按回车结束
4,5
j = 4, k = 5
试试不按规定输入,比如输入45,看看会发生什么,按回车结束
45
r = 45, s = -858993460
再试试不按规定输入,比如输入4 5,看看会发生什么,按回车结束
4 5
m = 4, n = -858993460
再正确输入一次,比如输入4,5 ,看看前面出现的错误会对后面造成什么影响,按回车结
束
4,5
a = 4, b = 5
Press any key to continue
——————————————
*/
时间:2011年8月3日16:36:57
目的:测试scanf的用法及注意事项
*/
# include <stdio.h>
int main(void)
{
int i;
printf("请输入一个数,比如123,按回车结束\n"); //最好在使用scanf前用printf做一下输入提示,否则弹出窗口只出现一个光标,会让人无所适从
scanf("%d",&i); //运行后在弹出的窗口输入数值,回车结束。这里输入123为变量i赋值
//注意 & 是取地址符,scanf中必须使用&i,而不能直接写成i
printf("i = %d\n",i); //显示的结果为i = 123
int j, k;
printf("请输入两个数,中间用逗号隔开,比如4,5,按回车结束\n");
scanf("%d,%d",&j,&k); //这里使用了非输入控制符逗号,所以在弹出的窗口也必须按此格式输入逗号,如4,5。
//注意 \n 也是一个非输入控制符,如果使用了\n,则必须在输入数字后也照原样输入\n,所以这与printf不同,scanf不使用\n
printf("j = %d, k = %d\n",j,k); //显示j = 4, k = 5
int r, s;
printf("试试不按规定输入,比如输入45,看看会发生什么,按回车结束\n");
scanf("%d,%d",&r,&s);
printf("r = %d, s = %d\n",r,s); //这里如输入了45,则45会一起被认为是第一个数字赋值给r,而第二个数字会出错,最后显示r = 45, s = -858993460
int m, n;
printf("再试试不按规定输入,比如输入4 5,看看会发生什么,按回车结束\n");
scanf("%d,%d",&m,&n);
printf("m = %d, n = %d\n",m,n); //这里如果不按规定输入,比如输入了4 5,则第二个数字会出错,最后显示m = 4, n = -858993460
/*
char ch;
while ( (ch=getchar()) != '\n')
continue;
*/
//代码A 这段代码可以帮助解决前面代码出错对后面代码的影响
int a, b;
printf("再正确输入一次,比如输入4,5 ,看看前面出现的错误会对后面造成什么影响,按回车结束\n");
scanf("%d,%d",&a,&b);
printf("a = %d, b = %d\n",a,b); //这里还没等输入,就会显示结果 a = 5, b = -858993460, 因为之前的错误,使得上次输入的5并没能赋值给n而留到这次赋给了a
return(0);
}
/*
在VC++6.0中的运行结果为:
——————————————
请输入一个数,比如123,按回车结束
123
i = 123
请输入两个数,中间用逗号隔开,比如4,5,按回车结束
4,5
j = 4, k = 5
试试不按规定输入,比如输入45,看看会发生什么,按回车结束
45
r = 45, s = -858993460
再试试不按规定输入,比如输入4 5,看看会发生什么,按回车结束
4 5
m = 4, n = -858993460
再正确输入一次,比如输入4,5 ,看看前面出现的错误会对后面造成什么影响,按回车结
束
a = 5, b = -858993460
Press any key to continue
——————————————
将代码A取消注释后的运行结果
——————————————
请输入一个数,比如123,按回车结束
123
i = 123
请输入两个数,中间用逗号隔开,比如4,5,按回车结束
4,5
j = 4, k = 5
试试不按规定输入,比如输入45,看看会发生什么,按回车结束
45
r = 45, s = -858993460
再试试不按规定输入,比如输入4 5,看看会发生什么,按回车结束
4 5
m = 4, n = -858993460
再正确输入一次,比如输入4,5 ,看看前面出现的错误会对后面造成什么影响,按回车结
束
4,5
a = 4, b = 5
Press any key to continue
——————————————
*/