《C语言》实战105例--1一个价值三天的BUG之限定符

本系列笔记是参考《C语言实战105例》及代码的学习笔记。

另外追加一个学习网址:C语言中文网:c语言程序设计门户网站(入门教程、编程软件)
http://c.biancheng.net/

还发现一个非常好的资源,是对c语言的基础解释。也是c语言中文网里面的子网页:编程基础http://c.biancheng.net/c/20/

本节是使用sscanf函数处理行定向的输入。程序为实现输入两个整数求和的功能。

注意:1、指针参数的类型必须是对应格式的代码的正确类型

           2、正确使用限定符(指定参数的长度)

代码如下:

#include<stdio.h>
#include<stdlib.h>
#define BUFFERSIZE 1024  /*允许处理的最长行有1024个字符*/
int main()
{
	int a,b,sum;         /*将输入的两个数分别存储在变量a和b中,sum=a+b*/
	char buffer[BUFFERSIZE];
	printf("***********************************\n");
	printf("*  Welcome to use our counter     *\n");
	printf("*  Input two integers in one line *\n");
	printf("*  The sum will be printed        *\n");
	printf("*  Input the char '#' to quit     *\n");
	printf("***********************************\n");
	/*从标准输入(stdin)读取输入的数据,存储在buffer中.
	如果读取的第一个字符是'#'则推出程序*/
	while((fgets(buffer,BUFFERSIZE,stdin)!=NULL)&&(buffer[0]!='#'))
	{
		if(sscanf(buffer,"%d %d",&a,&b)!=2)              /*处理存储在buffer中的一行数据*/
			{
				printf("The input is skipped:%s",buffer);/*如果输入的数字不是两个则报错*/
				continue;                               /*继续读取下一组数据*/			
			}
		sum=a+b;                                         /*计算a与b的和*/
		printf("The sum of %d and %d is %d\n",a,b,sum);  /*输出计算结果*/
	}
	return 0;
}

其中我不懂的地方:

  1. buffer--它一般用来定义数组,因为它本身的意思就是“缓冲区”,在C语言里,数组就是个缓冲区,所以用常常用它。
  2. 关于stdint.h--https://mp.csdn.net/postedit/82967645
  3. fgets函数----https://mp.csdn.net/postedit/82967810
  4. 本文的关键在于“限定符”--C语言类型限定符   http://c.biancheng.net/view/378.html
  5. 总结:

    short、long、unsigned short等都要加限定符。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1部分 基础篇 实1 一个价值三天”的BUG 2 实2 灵活使用递增(递减)操作符 5 实3 算术运算符计算器 7 实4 逻辑运算符计算器 9 实5 IP地址解析 11 实6 用if…else语句解决奖金发放问题 13 实7 用for循环模拟自由落体 16 实8 用while语句求n! 19 实9 模拟银行常用打印程序 22 实10 使用一维数组统计选票 26 实11 使用二维数组统计学生成绩 29 实12 简单的计算器 32 实13 时钟程序 35 实14 华氏温度和摄氏温度的相互转换 38 实15 SimpleDebug函数应用 40 第2部分 数值计算与数据结构篇 实16 常用的几种排序方法 46 实17 广度优先搜索及深度优先搜索 53 实18 实现基本的串操作 59 实19 计算各点到源点的最短距离 62 实20 储油问题 65 实21 中奖彩球问题 67 实22 0-1背包问题 69 实23 阶梯计数问题 72 实24 二叉树算法集 74 实25 模拟LRU页面置换算法 79 实26 大整数阶乘新思路 82 实27 银行事件驱动模拟程序 84 实28 模拟迷宫探路 87 实29 实现高随机度随机序列 89 实30 停车场管理系统 91 第3部分 文本屏幕与文件操作篇 实31 菜单实现 96 实32 窗口制作 97 实33 模拟屏幕保护程序 100 实34 文件读写基本操作 102 实35 格式化读写文件 10536 成块读写操作 107 实37 随机读写文件 108 实38 文件的加密和解密 111 实39 实现两个文件的连接 113 实40 实现两个文件信息的合并 116 实41 文件信息统计 118 实42 文件分割实 121 实43 同时显示两个文件的内容 123 实44 模拟Linux环境下的vi编辑器 124 实45 文件操作综合应用——银行账户管理 128 第4部分 病毒与安全篇 实46 实用内存清理程序 134 实47 如何检测Sniffer  136 实48 加密DOS批处理程序 139 实49 使用栈实现密码设置 141 实50 远程缓冲区溢出漏洞利用程序 144 实51 简易漏洞扫描器 146 实52 文件病毒检测程序 149 实53 监测内存泄露与溢出 150 实54 实现traceroute命令 152 实55 实现ping程序功能 154 实56 获取Linux本机IP地址 157 实57 实现扩展内存的访问 161 实58 随机加密程序 164 实59 MD5加密程序 165 实60 RSA加密实 168 第5部分 图形篇 实61 制作表格 172 实62 用画线函数作出的图案 174 实63 多样的椭圆 176 实64 多变的立方体 177 实65 简易时钟 178 实66 跳动的小球 181 实67 用柱状图表示学生成绩各分数段比率 183 实68 EGA/VGA屏幕存储 187 实69 按钮制作 190 实70 三维视图制作 193 实71 红旗图案制作 194 实72 火焰动画制作 196 实73 模拟水纹扩散 199 实74 彩色的Photo Frame  201 实75 火箭发射演示 203 第6部分 系统篇 实76 恢复内存文本 208 实77 挽救磁盘数据 210 实78 建立和隐藏多个PRI DOS分区 213 实79 简单的DOS下的中断服务程序 216 实80 文件名分析程序 219 实81 鼠标中断处理 222 实82 实现磁盘数据的整体加密 224 实83 揭开CMOS密码 227 实84 获取网卡信息 229 实85 创建自己的设备 231 实86 设置应用程序启动密码 233 实87 获取系统配置信息 236 实88 硬件检测 239 实89 管道通信 241 实90 程序自杀技术实现 244 第7部分 游戏篇 实91 连续击键游戏 248 实92 掷骰子游戏 250 实93 弹力球 252 实94 俄罗斯方块 253 实95 24点扑克牌游戏 257 实96 贪吃蛇 260 实97 潜水艇大战 262 实98 机器人大战 265 实99 图形模式下的搬运工 266 实100 十全十美游戏 269 第8部分 综合篇 实101 强大的通信录 274 实102 模拟Windows下UltraEdit程序 277 实103 轻松实现个人理财 279 实104 竞技比赛打分系统 281 实105 火车订票系统 286
第1部分 基础篇 实1 一个价值三天”的BUG 2 实2 灵活使用递增(递减)操作符 5 实3 算术运算符计算器 7 实4 逻辑运算符计算器 9 实5 IP地址解析 11 实6 用if…else语句解决奖金发放问题 13 实7 用for循环模拟自由落体 16 实8 用while语句求n! 19 实9 模拟银行常用打印程序 22 实10 使用一维数组统计选票 26 实11 使用二维数组统计学生成绩 29 实12 简单的计算器 32 实13 时钟程序 35 实14 华氏温度和摄氏温度的相互转换 38 实15 SimpleDebug函数应用 40 第2部分 数值计算与数据结构篇 实16 常用的几种排序方法 46 实17 广度优先搜索及深度优先搜索 53 实18 实现基本的串操作 59 实19 计算各点到源点的最短距离 62 实20 储油问题 65 实21 中奖彩球问题 67 实22 0-1背包问题 69 实23 阶梯计数问题 72 实24 二叉树算法集 74 实25 模拟LRU页面置换算法 79 实26 大整数阶乘新思路 82 实27 银行事件驱动模拟程序 84 实28 模拟迷宫探路 87 实29 实现高随机度随机序列 89 实30 停车场管理系统 91 第3部分 文本屏幕与文件操作篇 实31 菜单实现 96 实32 窗口制作 97 实33 模拟屏幕保护程序 100 实34 文件读写基本操作 102 实35 格式化读写文件 10536 成块读写操作 107 实37 随机读写文件 108 实38 文件的加密和解密 111 实39 实现两个文件的连接 113 实40 实现两个文件信息的合并 116 实41 文件信息统计 118 实42 文件分割实 121 实43 同时显示两个文件的内容 123 实44 模拟Linux环境下的vi编辑器 124 实45 文件操作综合应用——银行账户管理 128 第4部分 病毒与安全篇 实46 实用内存清理程序 134 实47 如何检测Sniffer  136 实48 加密DOS批处理程序 139 实49 使用栈实现密码设置 141 实50 远程缓冲区溢出漏洞利用程序 144 实51 简易漏洞扫描器 146 实52 文件病毒检测程序 149 实53 监测内存泄露与溢出 150 实54 实现traceroute命令 152 实55 实现ping程序功能 154 实56 获取Linux本机IP地址 157 实57 实现扩展内存的访问 161 实58 随机加密程序 164 实59 MD5加密程序 165 实60 RSA加密实 168 第5部分 图形篇 实61 制作表格 172 实62 用画线函数作出的图案 174 实63 多样的椭圆 176 实64 多变的立方体 177 实65 简易时钟 178 实66 跳动的小球 181 实67 用柱状图表示学生成绩各分数段比率 183 实68 EGA/VGA屏幕存储 187 实69 按钮制作 190 实70 三维视图制作 193 实71 红旗图案制作 194 实72 火焰动画制作 196 实73 模拟水纹扩散 199 实74 彩色的Photo Frame  201 实75 火箭发射演示 203 第6部分 系统篇 实76 恢复内存文本 208 实77 挽救磁盘数据 210 实78 建立和隐藏多个PRI DOS分区 213 实79 简单的DOS下的中断服务程序 216 实80 文件名分析程序 219 实81 鼠标中断处理 222 实82 实现磁盘数据的整体加密 224 实83 揭开CMOS密码 227 实84 获取网卡信息 229 实85 创建自己的设备 231 实86 设置应用程序启动密码 233 实87 获取系统配置信息 236 实88 硬件检测 239 实89 管道通信 241 实90 程序自杀技术实现 244 第7部分 游戏篇 实91 连续击键游戏 248 实92 掷骰子游戏 250 实93 弹力球 252 实94 俄罗斯方块 253 实95 24点扑克牌游戏 257 实96 贪吃蛇 260 实97 潜水艇大战 262 实98 机器人大战 265 实99 图形模式下的搬运工 266 实100 十全十美游戏 269 第8部分 综合篇 实101 强大的通信录 274 实102 模拟Windows下UltraEdit程序 277 实103 轻松实现个人理财 279 实104 竞技比赛打分系统 281 实105 火车订票系统 286

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值