C++ 程序一次运行每一行
我对编程有点陌生,很难弄清楚为什么整个代码同时运行。我如何使它一次只问用户一件事?我肯定这很简单,但我一定是忘了。谢谢C++ 程序一次运行每一行,c++,C++,我对编程有点陌生,很难弄清楚为什么整个代码同时运行。我如何使它一次只问用户一件事?我肯定这很简单,但我一定是忘了。谢谢 #include<iostream> using namespace std; int main() { int length; int width; int height; int numberCoats; int squareFeet; int name; int paintNeeded;
#include<iostream>
using namespace std;
int main()
{
int length;
int width;
int height;
int numberCoats;
int squareFeet;
int name;
int paintNeeded;
int brushesNeeded;
int coatsPaint;
int gallonsPaint;
cout << "Welcome to the program! What is your first name? \n";
cin >> name;
cout << name << " What is the length of the house?";
cin >> length;
cout << name << " What is the width of the house?";
cin >> width;
cout << name << " What is the height of the house?";
cin >> height;
cout << name << " How many coats of paint will it need?";
cin >> coatsPaint;
squareFeet = length * width * height;
paintNeeded = squareFeet / 325;
brushesNeeded = squareFeet / 1100;
gallonsPaint = coatsPaint * paintNeeded;
cout << name << " , the amount of square feet is " << squareFeet << endl;
cout << name << " , the amount of coats of paint you will need is " << coatsPaint << endl;
cout << name << " , you will need " << gallonsPaint << " of paint" << endl;
cout << name << " , you will need " << brushesNeeded << " of brushes" << endl;
system("pause");
return 0;
}
#包括
使用名称空间std;
int main()
{
整数长度;
整数宽度;
内部高度;
国际号码;
整数平方英尺;
int名称;
需要什么;
需要内特刷;
油漆涂层;
油漆;
姓名;
库特长度;
库特宽度;
库特高度;
cout-coatsaint;
平方英尺=长度*宽度*高度;
所需油漆=平方英尺/325;
所需刷数=平方英尺/1100;
加仑油漆=涂层油漆*需要油漆;
cout当您输入(例如)Chad
作为您的姓名时,cin>>name
将失败,因为name
是整数类型,而不是字符串类型
这意味着Chad
将留在输入流中,所有其他cin>>xx
语句也将失败(因为它们也是整数类型)
如果您将您的名字输入为7
,您会发现它工作得很好,除了不是您的名字之外:-)
更好的解决方案是将name
更改为std::string
,并使用getline()
将其读入:
#include <string>
std::string name;
getline(cin, name);
#包括
std::字符串名;
getline(cin,name);
使用getline()
而不是cin>
的原因是后者将停止在空白处,而前者将获得整行
换句话说,输入Chad Morgan
仍然会遇到您当前看到的问题,因为它会接受Chad
作为您的名字,并尝试获取Morgan
作为您的房屋长度。当您输入时(例如)Chad
作为您的名字,cin>>name
将失败,因为name
是整数类型,而不是字符串类型
这意味着Chad
将留在输入流中,所有其他cin>>xx
语句也将失败(因为它们也是整数类型)
如果您将您的名字输入为7
,您会发现它工作得很好,除了不是您的名字之外:-)
更好的解决方案是将name
更改为std::string
,并使用getline()
将其读入:
#include <string>
std::string name;
getline(cin, name);
#包括
std::字符串名;
getline(cin,name);
使用getline()
而不是cin>
的原因是后者将停止在空白处,而前者将获得整行
换句话说,输入Chad Morgan
仍然会有你目前看到的问题,因为它会接受Chad
作为你的名字,并试图获得Morgan
作为你的房子长度。name
是一个int
。听起来不对。你是在为name
输入字符串吗?好猫查德,你说得对,我会马上解决的。因此,如果你在头脑中使用你需要的字符串#包含,我很讨厌忘记这样的基本事情,谢谢你抓住了。查德,我只想说几点:1)把一个问题改成一个根本不同的问题,特别是一个已经不存在的问题,这不是一个好主意问题:-和2)一旦你的问题被解决了,正确的事情是把你认为有用的答案都推到最好,而不是只在它被解决的问题中加上一个注释。<代码>名称<代码>是一个<代码> INT/COD>。这听起来不对。你是否输入了一个用于<代码>名称>代码>的字符串?啊,好的,你是正确,我会马上解决的。因此,如果你使用字符串,你需要#将包含在你的头脑中。我讨厌忘记这样的基本事情,谢谢你抓住了。查德,我有几个要点:1)把一个问题改成一个根本不同的问题不是一个好主意,尤其是不再有问题的问题当你的问题得到解决后,正确的做法是把你认为有用的回答都接受,并接受最好的答案,而不只是在问题中加上一个注释。谢谢你的详细解释。我真的很感激。这个程序现在就像一个魅力。GETLIN很有意义,我将开始使用它。也许它会掩盖这样愚蠢的错误:)。@Chad已经详细阐述了为什么更喜欢getline(cin,somestring)
overcin>>somestring
。感谢您对其进行扩展。感谢您的详细解释。我真的很感激。该程序现在运行得很好。getline很有意义,我将开始使用它,也许它会掩盖以下愚蠢的错误:)。@Chad,已经详细介绍了选择getline的原因(cin,somestring)
overcin>>somestring
。感谢您对其进行扩展。