嘿伙计们,我正在为我的工作做一个项目,但我似乎无法弄清楚这一点.
我需要接受制造模型和特定产品适合的汽车年限.该程序将编写一个包含文本的文件,该文件将成为我需要的html大纲,并将关键信息插入正确的位置,以便快速将产品添加到我们的网页中.当我使用switch语句或if语句来分隔产品的类别时,输入会搞砸,并且不允许我回答其中一个问题.我不能只使用cin,因为我需要采取看起来像"2008 - 2009 - 2010 - 2011"的日期
这是我迄今为止所拥有的!这个是常规的cin,我试过getline你可以很快我昨天开始我很新,所以原谅我,如果这是一个简单的解决方案,但我找不到任何东西.
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
void proinfo();
int main()
{
//Sytem Information
system("TITLE This is a Beta of My Product Information Template Version 0.0.2");
//I'm using this as a welcome screen to inform users of new improvements on patches and other pertinent information to the users
cout << "Welcome To My Product Information Template Maker!!! \n It Is Still In Development" << endl;
cout << "\n\nworking features are:" << endl << "\t-None\n" << endl;
system("PAUSE");
system("CLS");
proinfo();
}
void proinfo()
{
//Declare Variables here
int loop(1), protype;
char make[256], model[256], year[256];
string getinput;
while(loop==1)
{
//This is the first menu the user sees where they have to choose what type
//of products users will be adding
system("CLS");
cout << "Welcome to My Product Information Template Version 0.0.0" << endl;
cout << "Please select the number of the product" << endl;
cout << "type you will be ading!\n" << endl;
cout << "1.Fe - Fe2 Moldings" << endl;
cout << "2.CF - CF2 Moldings" << endl;
cout << "What would you like to do? ";
cin >> protype;
if(protype==1)
{
//FE - FE2 Molding
system("cls");
cout << "You have selected" << endl;
cout << "Fe - Fe2 Moldings\n" << endl;
cout << "Please Enter the Make of the molding" << endl;
cin >> make;
cout << "Please Enter the Model of the molding" << endl;
cin >> model;
cout << "Please Enter the Years this molding fits" << endl;
cin >> year;
cout << "You have just created a template for a(n)" << year << " " << make << " " << model << endl;
cout << "Check My Documents For a file called Fe-Fe2template.txt" << endl;
//Asks to quit or restart
cout << "Would you like to make another tempalte?" << endl;
cin >> getinput;
if(getinput=="yes")
{
cout << "Great, Lets keep working!" << endl;
//End of If statement
}
system("PAUSE");
}
if(protype==2)
{
//CF - CF2 Molding
system("cls");
//Asks to quit or restart
cout << "Would you like to make another tempalte?" << endl;
cin >> getinput;
if(getinput=="yes")
{
cout << "Great, Lets keep working!" << endl;
//End of If statement
}
system("PAUSE");
//End of Protype Switch Statement
}
//End of while loop
}
//End of Proinfo()
}
Run Code Online (Sandbox Code Playgroud)
将年份[256]更改为字符串年份;
改变cin >> year; getline(cin,year);
添加行cin.ignore(); 在getline之前.
你的主要问题是流运算符>>在流中留下换行符,所以当你尝试使用getline时它会读取一个空行.ignore()将咀嚼换行符,让你读取你期望的字符串.
所以这应该让你顺利.
cin.ignore();
cout << "Please Enter the Years this molding fits" << endl;
getline(cin, year);
Run Code Online (Sandbox Code Playgroud)
你还有其他一些小问题,但你会发现它们.最糟糕的是忘记终止循环.
if(getinput=="yes")
{
cout << "Great, Lets keep working!" << endl;
//End of If statement
}
else
{
loop = 0;
continue;
}
Run Code Online (Sandbox Code Playgroud)