запись слов из файла в массив

  • Автор темы Guest_
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest_

#1
Специалисты, помогите, пожалуйста, разобраться с проблемой: Есть входной файл, в котором в строке записано по 2 слова. Количество строк большое, заранее неизвестное.
Нужно записать первый столбик в массив А и второй столбик слов в массив Б. Неделю бьюсь, не получается записать в массив! Записать слово в переменную легко:
char a[];
input_file>>a;
А хотелось бы сделать так:
char[50][50] //50 символов на слово и 50 строк
input_file>>a[][0] //чтобы записал слово в нулевую строку массива

Но такой способ не работает ;)
Что думаете по этому поводу?
 
D

Dr.Gigabit

#2
Все слова в один вектор(дальше можно манипулировать):

std::vector<string> vec;
ifstream fi("file.txt")
if(fi)
{
std::copy(istream_iterator<string>(fi), istream_iterator<string>(), back_inserter(vec));
}

Сразу в 2:
ifstream fi("test.txt");
string str;
std::vector<string> vec1, vec2;
while (fi >> str)
{
vec1.push_back(str);
if (fi >> str)
vec2.push_back(str);
}
в рез-те имеем 2 вектора

ps. Писал только что, возможно где-то ошибся, но идея общая изложена. Если что не ясно - спрашивай
 
D

Dr.Gigabit

#3
Такая конструкция недопустима... Если объявляешь массив неопределенного размера, нужно его сразу инициализировать при объявлении.
Если пишешь на С++ - используй вектора.
 
G

Guest

#4
Мне нужно срочно написать эту прогу до понедельника, поэтому, если ты стукнешься ко мне в аську сегодня (в воскресенье) - будет просто супер! Моя аська: 91390741, а если аськи нету -то bratmanu@mail.ru

а непонятно вот что: push_back - это что за команда?
Получится, что в вектор1 будут записаны все слова из первой колонки друг за другом, без пробела?
Проверить у себя не могу, ищу библиотеку vector.h
 
Статус
Закрыто для дальнейших ответов.