从输入流中读取整形和浮点型数据存储在实参所指的内存空间中
来源:互联网 发布:水晶内雕 软件 编辑:程序博客网 时间:2024/04/30 09:38
源自《The C Programming Language》P83 pr5-2:
模仿函数getInt 的实现方法,编写一个读取浮点数的函数getFloat,getFloat函数的返回值应该是什么类型呢?
代码:
分析:
疑问:关于MAX_FLT定义:当arr_flt定义为float型数组时,if(arr_flt[n] == MAX_FLT)会失效,
而定义为double型数组时,则有效,如果如上句那样定义MAX_FLT=2147483648则不会出现失效这个问题?
易错:关于continue语句用在while循环和for循环中差异:
for(n = 0; n < SIZE && ((reNum = getFloat(&arr_flt[n])) != EOF); ++n)
if(arr_flt[n] == MAX_FLT)
continue;
for循环中continue语句是直接跳到++n处执行,如果不想跳转到此处而是直接跳到条件测试部分,应该用while循环(如下代码)
n = 0;
while(n < SIZE && ((reNum = getFloat(&arr_flt[n])) != EOF))
{
if(arr_flt[n] == MAX_FLT)
continue;
++n;
}
函数分析:getInt:
1, 丢弃字符序列头部的空白字符;
2, 分四种情况:isdigit(c),c == EOF, c == '+',c == '-'进行处理,
当不满足这四种情况时if(!isdigit(c) && c != EOF && c != '+' && c != '-'),说明c是其他字符(不包含空白字符)
将c其保存在*pNum中;
然后依次按照这四种情况分别进行处理('+', '-'一起处理)。
3, 本函数的实参是指向变量的指针,这样可以在函数中改变实参的值,从而达到一个函数返回多个值的目的。
- 从输入流中读取整形和浮点型数据存储在实参所指的内存空间中
- 整形数int、浮点型数据float,在内存中存储的表示
- 【C】C语言中读取整形和浮点型的格式说明符
- 浮点型数据在计算机中存储
- C语言中,整形、浮点型、字符型数据在不同编译器中所占据的字节数
- 从标准输入流中读取数据
- 从标准输入流中读取数据,并存储到文件中
- 在RMS中存储和读取数据
- 在RMS中存储和读取数据
- 从“求1+1/2+1/3+......+1/100”中观察类型转换和浮点型的数据存储
- 数据存储到文件和从文件中读取数据
- 浮点型数据在计算机内存中存储原理
- 如何从输入流中读取数据到字符串中
- 计算机中数据的存储和读取
- JDK 中从控制台读取输入的数据
- 浮点型数据在内存中存储的表示
- 浮点型数据在内存中存储的表示[转载]
- 浮点型数据在内存中存储的表示
- 使用 TRY/CATCH 语句解决 SQL Server 2005 死锁
- 删除VSS6.0默认的数据库Common
- PHP定界符
- C#导出Excel总结
- Asp实现google翻译
- 从输入流中读取整形和浮点型数据存储在实参所指的内存空间中
- Getting Started with Monkey
- oracle事务提交
- windows下mysql编译
- 【2011-06】第一次工作面试经历
- MAC OS 环境变量设置
- 关于java POI包的相关操作
- perl多线程抽取数据进展
- [mongoDB]query 异常与测试 特性与疑问