Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с массивом строк, Проблема с массивом строк 
:(
    Опции темы
serega721
Дата 31.3.2011, 07:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 15.5.2010

Репутация: нет
Всего: нет



Здравствуйте!
У меня возникла проблема с реализацией массива строк и я не знаю как ее решить вот собственно код(мои попытки):
Код

void add(vector<string> student,int n,int kurs[],vector<string> gruppa)
{
        int i;
        for(i=0;i<n;i++)
        {
                cout<<"Введите фамилию и инициалы студента:";
                cin.getline(student[i],20);
                cout<<"Введите группу в которой учится студент:";
                cin.getline(gruppa[i],20);
                cout<<"Введите на каком курсе учится студент";
                cin>>kurs[i];
        }
}

PM MAIL   Вверх
bsa
Дата 31.3.2011, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



serega721, тебе точно нужен массив именно строк? может подойдет массив структур со строками?
PM   Вверх
borisbn
Дата 31.3.2011, 11:11 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



тут целый "букет" проблем
1. в функцию add передайтся не ссылка на вектор, а сам вектор. при его заполнении изменится именно переменная student, а не переменная, которая была передана в функцию
Код

void add( vector< string > student ) { ... }
vector< string > s;
add( s ); // в данном случае копия s будет передана в add,
              // там эта копия будет заполнена, а s останется неизменным

нужно так
Код

void add ( vector< string > & student ) { ... }
vector< string > s;
add( s ); // в данном случае add передана ссылка на s,
              // там по этой ссылке будет заполняться сама s, а не её копия

2. 
Цитата(serega721 @  31.3.2011,  07:17 Найти цитируемый пост)
cin.getline(student[i],20);

2.1. getline требует char * на вход, а ты подаёшь класс string
2.2. под student[i] никто не выделял память.
нужно так

Код

string s;
cin >> s;
strudent.push_back( s );


фух... устал описывать проблемы - там ещё много.
я б тебе посоветовал подучить Си++ перед тем, как использовать вектора, строки и т.п.
начни с простого


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
serega721
  Дата 31.3.2011, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 15.5.2010

Репутация: нет
Всего: нет



Цитата(bsa @  31.3.2011,  10:47 Найти цитируемый пост)
erega721, тебе точно нужен массив именно строк? может подойдет массив структур со строками? 
 Да мне нужен именно массив строк.  

Цитата(borisbn @  31.3.2011,  11:11 Найти цитируемый пост)
фух... устал описывать проблемы - там ещё много.
я б тебе посоветовал подучить Си++ перед тем, как использовать вектора, строки и т.п.
начни с простого 
 
Спс за ответ я все учтуsmile

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0460 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.