我正在尝试进行简单的人口统计输入 - >输出程序。输入人员信息并将其写入csv文件。但是我无法获得名称部分。我总是遇到分段错误。下面的代码是有问题的位,不起作用。我知道它与字符串有关,如果我改为int它就可以了。所有其他数据输入(为简单起见已删除)有效。
主要
#include <iostream>
#include "People.h"
using namespace std;
void demographics();
int main()
{
demographics();
return 0;
}
void demographics()
{
short elements = 2;
Names test[elements];
vector<string> name2;
for(int i =0; i<=elements; i++)
{
string name;
cout << "Please enter first name for child " << i+1 << endl;
cin >> name;
name2.push_back(name);
test[i].setName(name2);
}
return;
}
People.h
#ifndef PEOPLE_H_INCLUDED
#define PEOPLE_H_INCLUDED
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Names
{
private:
vector<string> names;
public:
void setName(vector<string>&);
};
People.cpp
#include "People.h"
#include <iostream>
using namespace std;
void Names::setName(vector<string>& f_l_name)
{
names = f_l_name;
}
答案 0 :(得分:7)
for(int i =0; i<=elements; i++)
应该是
for(int i =0; i < elements; i++)