问题:
首先我去了函数" nieuwe bestelling",这允许我填充向量。然后我用toevoegen函数打印矢量但它仍然是空的
- 我正在使用eclipse luna
提前致谢!
代码:
MAIN
int main(void)
{
tafel tafelObj;
short choice;
cout<<(" 1. nieuwe bestelling\n 2. tafel instellingen);
cin>>choice;
switch(choice)
{
case(1): cout<<"nieuwe bestelling"<<endl;
tafelObj.nieuwebestelling();
break;
case(2): cout<<"tafel instellingen"<<endl;
tafelObj.toevoegen();
break;
}
}
。 / * * tafel.cpp *创建时间:2014年7月18日 *作者:亚历克斯 * /
#include "../tafel.h"
#include <vector>
#include <string>
#include <iostream>
tafel::tafel() {
//constr
}
void tafel::nieuwebestelling()
{
std::string besteld;
static int tafelnummer=1;
while(besteld!= "end")
{
std::cout<<"bestelling: ";
std::getline (std::cin,besteld);
bestellingen[tafelnummer].gerechten.push_back(besteld);
}
std::cout<<"---------------------------"<<std::endl;
}
void tafel::toevoegen()
{
int tafelnummer=1;
std::cout<<"----------------------------------"<<std::endl;
std::cout<<"gewijzigd"<<std::endl;
for(unsigned int i =0; i< bestellingen[tafelnummer].gerechten.size(); i++)
{
std::cout<<"i";
std::cout<< bestellingen[tafelnummer].gerechten[i]<<std::endl;
}
std::cout<<"eind"<<std::endl<<std::endl;
std::cin>>tafelnummer; //This is just here so i can clearly see, the point where everything should be printed
}
/*
* tafel.h
*
* Created on: 18 Jul 2014
* Author: alex
*/
#ifndef TAFEL_H_
#define TAFEL_H_
#define tafels 10
#include <iostream>
#include <vector>
#include <string>
class tafel {
public:
static int i;
struct bestelling //elke tafel heeft een struct waarin alle gerechten enzo in staan. ide struct = ide tafel
{
std::vector<std::string>gerechten;
}bestellingen[tafels];
tafel();
void nieuwebestelling();
void toevoegen();
};
#endif /* TAFEL_H_ */
答案 0 :(得分:1)
我无法使用以下main
:
int main()
{
tafel t;
t.nieuwebestelling();
t.toevoegen();
return 0;
}
但是,我将在您的代码中指出一个错误。在以下while
循环中,
while(besteld!= "end")
{
std::cout<<"bestelling: ";
std::getline (std::cin,besteld);
bestellingen[tafelnummer].gerechten.push_back(besteld);
}
字符"end"
将添加到bestellingen[tafelnummer].gerechten
,因为您在besteld
添加bestellingen[tafelnummer].gerechten
后检查 while(true)
{
std::cout<<"bestelling: ";
std::getline (std::cin,besteld);
if ( besteld == "end" )
{
break;
}
bestellingen[tafelnummer].gerechten.push_back(besteld);
}
的值。
您可以将该代码块更改为:
{{1}}
删除该错误。