Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;传递导致分段错误的字符串_C++_String_Segmentation Fault - Fatal编程技术网

C++ C++;传递导致分段错误的字符串

C++ C++;传递导致分段错误的字符串,c++,string,segmentation-fault,C++,String,Segmentation Fault,我正在尝试做一个简单的人口统计输入->输出程序。输入人员信息并将其写入csv文件。然而,我不能得到的名称部分的工作。我总是会犯分割错误。下面的代码是有问题的位,无法工作。我知道这和字符串有关,如果我改为int,效果就很好。所有其他数据输入(为了简单起见已删除)都可以工作 主要 #包括 #包括“People.h” 使用名称空间std; 人口统计学(); int main() { 人口统计学(); 返回0; } 人口统计学() { 短元素=2; 名称测试[元素]; 载体名称2; for(int i=

我正在尝试做一个简单的人口统计输入->输出程序。输入人员信息并将其写入csv文件。然而,我不能得到的名称部分的工作。我总是会犯分割错误。下面的代码是有问题的位,无法工作。我知道这和字符串有关,如果我改为int,效果就很好。所有其他数据输入(为了简单起见已删除)都可以工作

主要

#包括
#包括“People.h”
使用名称空间std;
人口统计学();
int main()
{
人口统计学();
返回0;
}
人口统计学()
{
短元素=2;
名称测试[元素];
载体名称2;

for(int i=0;i
for(int i=0;i)你是说for循环不应该结束吗?它应该只读取for(int i=0;i)?@user3547452:pdm是说你读取的元素太多了。好吧,这很有意义,当它第一次发布时,它只是说for(int 1=0;它总共有3个元素,这正是我要寻找的。我想为3个人输入信息。这为什么会导致错误?为了澄清,我确实更改为只Names test[2];
创建了一个包含两个元素而不是三个元素的数组。您可以使用
test[1]
然后获取第二个元素,因为索引从0开始…初始化不是索引。
#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;
}
#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>&);
};
#include "People.h"
#include <iostream>

using namespace std;

void Names::setName(vector<string>& f_l_name)
{
    names = f_l_name;
}