printf 和 scanf 函数小结

今天星期日,昨晚十二点睡,但还是起了个大早,复习C语言是出现了一个小问题。

下面看问题:

# include <stdio.h>
int main (void)
{
	int i,j,k;
	for(k = 0 ; k< 5 ;k++)
	{
		printf("Please input data:\n");
		scanf("%d,%d",&i,&j);
		printf("%d,%d\n",i,j);
	}
	return 0;
}


 

就这个题,让我费了一上午的时间来处理这个异常。

原因是 得不到变量j 的值,经过两小时的查书和反复练习,终于发现是scanf 函数的问题。

在谭浩强老师的<C语言程序设计> 中发现 scanf 的注意事项:

1、scanf  中的 “格式控制” 后面应当是变量的地址,而不是变量的地址。

scanf("%d,%d",a,b);  // Error !

2.在“格式控制” 字符串中除了格式说明意外还有其他字符则在输入数据时应输入与这些字符相同的字符!

scanf("%d--%d--",&a,&b);   // 输入时应当将“--” 也一起输入。

3.在用 “%c” 格式输入字符时,空格字符 和“转义字符” 都作为有效字符输入。

scanf("%c%c%c",&c1,%c2,%c3);

//输入时a  b  c  ,程序默认将a 赋值给c1, 空格赋值给c2.....

4.scanf 判断输入结束。

遇到空格。   回车、Tab

按指定宽度   %3d  只取三列。

与非法输入   scanf("%d%c%f",&a,&b,&c);  //不多说。

 

5.高质量的代码: printf("请输入 i, j值 中间用逗号隔开");

scanf("%d,%d",&i,&j);

printf("i = %d ,j = %d",i,j);    //程序是给别人写的,所以尽量要有说明

6.不好的代码:scanf("%d,%d\n",&i,&j);     // 这样的话在输入数据时要连  \n  输入到屏幕中!

7.应该编写代码对用户的非法输入进行处理!(第十六行)

#include <stdio.h>

int main (void)
{
	int i;
	char ch;
	printf("请输入i值:");
	scanf("%d",&i);
	printf("i = %d\n",i);
	/*
	....
	...
	....

	*/
	while ((ch = getchar()) != '\n')  //清楚键盘上次输入的垃圾字符!
		continue;
	int j;
	printf("请输入j值:");
	scanf("%d",&j);
	printf("j = %d\n",j);
	return 0;
}


 

 

心得:细节呀!害死人呀!好了,c语言的顺序程序设计    就此结束,感学郝斌老师的教学视频,至少在我的

枯燥的学习当中增添了些许绿色。谢谢!

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值