Как поместить массив в файл, используя для l oop в C ++ - PullRequest
0 голосов
/ 04 апреля 2020

Я объявил 3 массива, где каждый элемент в массиве parent является именем родителя, а массив dollah и mamat состоит из имени их потомков.

ofstream WFile;
string parent[]={"dollah","mamat"};
string dollah[]={"aniza","azman","azilawati"};
string mamat[]={"mad","rushdi","roslan"};

Я хочу сделать FOR loop, который можно использовать для помещения имени детей в их собственный family файл.

for (int i=0; i<14;i++){
    len= cout<<(sizeof(parent[i))/cout<<sizeof((parent[i])[0]);

    WFile.open("Family"+i+".txt");
    if(WFile.is_open()){
    cout<<"File opened"<<endl;
    for(int j=0;j<len;j++){
        WFile<<(parent[i])[j]<<endl;    
        }
    }else{
        cout<<"File cannot opened"<<endl;
    }
    WFile.close();
}

Ошибка показывает

[Ошибка] недопустимым операнды типов 'const char *' и 'const char [5]' для двоичного оператора '+'

1 Ответ

1 голос
/ 04 апреля 2020

Литеральные строки на самом деле являются массивами константных символов и, как таковые, распадаются на указатели (т. Е. char const*).

Вы пытаетесь добавить целое число к указателю, а затем добавить еще один указатель на результат , Это не имеет смысла.

Используйте std::to_string для преобразования целого числа в std::string, и оно должно работать:

"Family"+std::to_string(i)+".txt"
...