试图做一段时间(布尔)循环后,它失败,因为我看不到向量的内容,因为它们中没有任何内容,我做了一段时间(真正)循环,意图打破如果用户输入一个0.这里是代码的重要部分。可能在外面打破循环?
编辑:工作代码,但是| =意味着什么?
#include "std_lib_facilities.h"
class Name_pairs
{
public:
vector<string>names;
vector<double>ages;
bool test();
string read_names();
double read_ages();
void print();
};
string Name_pairs::read_names()
{
string name;
cout << "Enter name: ";
cin >> name;
names.push_back(name);
return name;
}
double Name_pairs::read_ages()
{
double age;
cout << "Enter corresponding age: ";
cin >> age;
ages.push_back(age);
cout << endl;
return age;
}
void Name_pairs::print()
{
for(int i = 0; i < (names.size()-1) && i < (ages.size()-1); ++i)
cout << names[i] << " , " << ages[i] << endl;
}
bool Name_pairs::test()
{
if(ages.empty() || names.empty()) return true;
if(ages.back() = 0 || names.back() == "0"){
return false;}
return true;
}
int main()
{
Name_pairs np;
cout << "Enter names and ages. Use 0 to cancel.\n";
bool finished = false;
while(!finished){
finished |= "0" == np.read_names();
finished |= 0 == np.read_ages();}
np.print();
keep_window_open();
}
我在理解你的代码时遇到了一些麻烦,第二块之后是第三块吗?或者是循环的一部分?如果不太长,你可能会发布整个hte循环体(包括条件)吗? – Falaina 2009-07-15 01:36:32
当然没问题。我会用我试过的布尔测试来发布它。 – trikker 2009-07-15 01:37:17
@Trikker:请请修复您的代码格式。我为你解决了这个问题,但是你的编辑在整个过程中跺脚。 – 2009-07-15 01:42:20