• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

Guest_

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

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

Dr.Gigabit

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

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


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

Guest

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

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

maksa

как мне запсать данные из лейбела
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!