标题:cin.get(),这里
只看楼主
猫妓
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2005-2-11
 问题点数:0 回复次数:5 
cin.get(),这里

在计算一个表达式的值的程序里: 读入一个完整的数字用到了 char c = cin.peek(); while(isdigit(c)) { result = 10 * result + c - '0';

cin.get();

c= cin.peek(); } 这里的 cin.get();c=cin.peek(); (这里两行) 可以直接用cin >> c; 或者:c=getchar(); 或者:cin.get(c); 一行就代替吗??

搜索更多相关主题的帖子: get cin peek result 数字 
2005-02-17 04:02
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
得分:0 
我觉得是可以的

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-02-17 14:21
猫妓
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2005-2-11
得分:0 

不能改~ #include <iostream> #include <cctype>

using namespace std;

int term_value(); int factor_value();

/** Evaluates the next expression found in cin @return the value of the expression. */ int expression_value() { int result = term_value(); bool more = true; while (more) { char op = cin.peek(); if (op == '+' || op == '-') { cin.get(); int value = term_value(); if (op == '+') result = result + value; else result = result - value; } else more = false; } return result; }

/** Evaluates the next term found in cin @return the value of the term. */ int term_value() { int result = factor_value(); bool more = true; while (more) { char op = cin.peek(); if (op == '*' || op == '/') { cin.get(); int value = factor_value(); if (op == '*') result = result * value; else result = result / value; } else more = false; } return result; }

/** Evaluates the next factor found in cin @return the value of the factor. */ int factor_value() { int result = 0; char c = cin.peek(); if (c == '(') { cin.get(); result = expression_value(); cin.get(); // read ")" } else // assemble number value from digits { while (isdigit(c)) { result = 10 * result + c - '0'; cin.get(); c = cin.peek(); //这是改了以后(1+2*3/6 答案2会变成11,但不知为什么) } } return result; }

int main() { cout << "Enter an expression: "; cout << expression_value() << "\n"; system("pause"); return 0; }


2005-02-18 03:42
猫妓
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2005-2-11
得分:0 
求人呀~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

2005-02-19 03:32
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
得分:0 
cin.peek(); //查找下一个输入后缓冲里面的字符
2005-02-19 10:26
猫妓
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2005-2-11
得分:0 
不懂~

另外~ 为什么 会有上面的不同

2005-02-20 03:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-12249-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023828 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved