我通常是一名Java程序员,几乎完全使用textmate,但最近我开始使用C ++。但是当我使用最基本的程序并加入 cin 关键字并运行程序时,我在运行时没有任何机会投入任何东西,有时它会自动插入随机值!例如,如果我在textmate中运行它:
#include <iostream>
int stonetolb(int);
int main() {
using namespace std;
int stone;
cout << "enter the weight in stone";
cin >> stone;
int pounds = stonetolb(stone);
cout << stone << "stone = ";
cout << pounds <<" pounds.";
return 0;
}
int stonetolb(int sts) {
return 14 * sts;
}
我会提出输出:
输入stone32767stone = 458738磅的重量。
为什么会发生这种情况,如何阻止它?
答案 0 :(得分:2)
最有可能的是,输入语句cin >> stone
失败,而stone具有未定义的值。您需要使用if (cin >> stone) { ... } else { // input failure }
检查输入失败。至于为什么这样一个简单的程序会表现出失败的行为,我不知道 - 你必须检查textmate文档。