我差不多完成了代码,我只需要弄清楚如何使用cout和cin为字符和三角形的高度设置用户输入值,谢谢这是我的所有代码硬编码。
我觉得我说错了基本上程序应该使用我在下面创建的函数drawline绘制一个三角形,当我编译并运行它要求我输入用户选择如果我输入1它运行代码在if(userChoice == 1){}基本上我想要一个cin和cout代码结构,允许它们为lineLength和displayChar输入它们的值。
#include <iostream>
#include <string>
#include <math.h>
using namespace std;
void drawLine (int lineLength, char displayChar);
void placePoint (int lineLength) ;
int main()
{
int userChoice = 0;
cout << "**********************************" << endl;
cout << "* 1 - DrawTriangle *" << endl;
cout << "* 2 - Plot Sine graph *" << endl;
cout << "* 3 - Exit *" << endl;
cout << "Enter a selection, please: " << endl;
cin >> userChoice;
int x,y,t =0;
char displayChar = ' ';
int lineLength = 0;
double sinVal= 0.00;
double rad = 0.00;
int plotPoint = 0;
if (userChoice == 1)
for (int x=1; x <= lineLength; x=x+1) {
drawLine ( x, displayChar);
}//end for
for (int y=lineLength-1; y >= 1; y=y-1) {
drawLine ( y, displayChar );
}//end for
}//end main at this point.
void drawLine (int lineLength, char displayChar)
{
for (int x=1; x <= lineLength; x=x+1) {
cout << displayChar;
}
cout << endl;
for (int y=y-1; y >= 1; y=y-1) {
cout << displayChar;
}
cout << endl;
} //end drawline
答案 0 :(得分:0)
问题是cin
是一个流(请参阅reference document),因此您不能将值流式传输到userChoice
,因为它是一个int。相反,您需要使用字符串:
string response;
cin >> response;
然后你需要使用this SO question中的一种方法解析字符串以获取int,例如strtol
。
关于阅读这里的类似问题:How to properly read and parse a string of integers from stdin C++
或者,只需使用字符串response
进行比较:
if(response == '1') {
//...
}
答案 1 :(得分:0)
for (int y=y-1; y >= 1; y=y-1)
将y初始化为不确定的值。这意味着循环将具有随机的,可能非常长的持续时间。
答案 2 :(得分:-1)
您无法使用cin
设置整数。由于cin
是一个流,因此您可以使用它来设置字符串。从那里你可以使用atoi
将字符串转换为整数。您可以在cplusplus.com上查看详情。
您的实施应该是这样的:
string userChoiceString;
cin >> userChoiceString;
userChoice = atoi(userChoiceString.c_str());