2016-04-19 2 views
-1

Я пытаюсь инициализировать массив строк с станд :: CIN, но я не могу это мой код:Инициализация массива строк

string *words[6]; 

for (int i=0 ; i<6;i++){  
    cin >> words[i]; //error 
} 

может кто-нибудь помочь мне !!

+1

опечатка: 'строка * слова [6]; => string words [6]; ' – NathanOliver

+1

Почему бы не' std :: array words; '? –

ответ

3

Вам не нужно создавать их динамически:

string words[6]; //notice I deleted '*' here 
for (int i=0 ; i<6;i++){ 
    cin >>words[i]; 
} 

То, что вы создали это массив указателей, в котором каждый указатель должен быть initalized с new, прежде чем вы можете использовать его и после этого удален.

1

у вас есть массив указателей на std::string, но для вашего кода для работы вам нужен массив std::string.

0

См ниже код:

std::string words[6][6]; 

for (int y=0; y<6; ++y) 
    for (int x=0; x<6; ++x){ 
    cin >> words[x][y]; 
} 
+0

Не похоже, что ему нужно читать 36 строк ... – Quest

+0

«массив строк 2d?» –

+1

@RiadBaghbanli Скорее всего, пользователь вводит в заблуждение 'char [] []' и 'std :: string []' – NathanOliver

Смежные вопросы