不要将正常值和错误标志混在一起返回

不要将正常值和错误标志混在一起返回。

正常值用输出参数获得 ,而 错误标志用 return 语句返回。

C标准库函数的设计者为什么要将 getchar声明为令人迷糊的 int 类型呢?

他会那么傻吗?

在正常情况下,getchar 的确返回单个字符。

但如果 getchar 碰到文件结束标志或发 生读错误,它必须返回一个标志 EOF。

为了区别于正常的字符,只好将 EOF 定义为负数 (通常为负 1)。

因此函数 getchar 就成了 int 类型。

我们在实际工作中,经常会碰到上述令人为难的问题。

为了避免出现误解,我们应 该将正常值和错误标志分开。

即:正常值用输出参数获得,而错误标志用 return 语句返 回。

函数 getchar 可以改写成 BOOL GetChar(char *c); 虽然 gechar 比 GetChar 灵活,例如 putchar(getchar()); 但是如果 getchar 用错了, 它的灵活性又有什么用呢?

 

 

 1 #include <iostream>
 2 #include <stdlib.h>
 3 #include <math.h>
 4 
 5 //main()函数的定义
 6 /* run this program using the console pauser or add your own getch, system("pause") or input loop */
 7 using namespace std;
 8 int main(int argc, char** argv) {
 9  double x;
10 
11     //循环输入数据计算对数
12     do {
13         cout<<"x=";
14         cin>>x;
15         if (x<=0) break;
16         cout<<"log("<<x<<")="<<log(x)<<endl;
17         cout<<"log10("<<x<<")="<<log10(x)<<endl;
18     } while(1);
19 }

 

posted @ 2018-08-03 13:12  borter  阅读(195)  评论(0编辑  收藏  举报