這是我第一次嘗試C++,下面是通過控制檯應用程序計算提示的示例。完整的(工作代碼)如下所示:C++ Noobie - 爲什麼移動這些行會破壞我的應用程序?
// Week1.cpp : Defines the entry point for the console application.
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
// Declare variables
double totalBill = 0.0;
double liquour = 0.0;
double tipPercentage = 0.0;
double totalNoLiquour = 0.0;
double tip = 0.0;
string hadLiquour;
// Capture inputs
cout << "Did you drink any booze? (Yes or No)\t";
getline(cin, hadLiquour, '\n');
if(hadLiquour == "Yes") {
cout << "Please enter you booze bill\t";
cin >> liquour;
}
cout << "Please enter your total bill\t";
cin >> totalBill;
cout << "Enter the tip percentage (in decimal form)\t";
cin >> tipPercentage;
// Process inputs
totalNoLiquour = totalBill - liquour;
tip = totalNoLiquour * tipPercentage;
// Output
cout << "Tip: " << (char)156 << tip << endl;
system("pause");
return 0;
}
這工作正常。不過,我想移動:
cout << "Please enter your total bill\t";
cin >> totalBill;
是第一線以下:
// Capture inputs
但是當我做了應用程序中斷(彙編,只是忽略了if語句,然後打印兩COUT的。在一次
林抓我的頭監守我無法理解這是怎麼回事! - 但我假設我是一個傻瓜
感謝
當然,你是不是白癡:) 我懷疑沒有在hadLiquour的最後一個換行符這就是爲什麼它不匹配。嘗試使用調試器進行調查,或只是將值輸出到屏幕。 如果是這樣你可以重寫這個比較只有前3個字符,但我不會毀了你的樂趣如何使它。 –
打印'hadLiquour',看看它包含了什麼,這會給你一些指示什麼是錯的。 – MoonKnight
儘量不要混合** getline()**和** cin **,因爲它可能會導致問題,如[此處](http://www.cplusplus.com/forum/articles/6046/) –