Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2014, 02:23   #1
Shenan
Пользователь
 
Регистрация: 27.10.2010
Сообщений: 21
Восклицание Работа с файлами С++

Доброй ночи. Будте добры, помогите сделать задачу с файлами. Теоретически понимаю что нужно делать, а программно реализовать не могу
вот задание:
Имеются два текстовых файла. В первом файле находится текстовая информация, во втором – числа. Вывести на экран символы первого файла с позиций, указываемых числами из второго файла.

заранее спасибо!
Shenan вне форума Ответить с цитированием
Старый 10.01.2014, 03:10   #2
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

А с чем именно трудности?
Базиля вне форума Ответить с цитированием
Старый 10.01.2014, 03:17   #3
Shenan
Пользователь
 
Регистрация: 27.10.2010
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Базиля Посмотреть сообщение
А с чем именно трудности?
не могу придумать как считать посимвольно данные со второго файла и сравнить с порядковыми номерами из первого, чтобы на экран вывести нужные символы
Shenan вне форума Ответить с цитированием
Старый 10.01.2014, 03:43   #4
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

С первым файлом вопросов нет?
Просто берете и считываете весь текст в строковую переменную.

Со вторым файлом дело обстоит несколько иначе, числа могут быть разделены знаками табуляции/пробелом/переводом строки.
Поэтому при считывании, нам их нужно попросту опускать. В данном случае используете оператор потокового ввода для считывания данных, при котором и происходит преобразование некоторых символов, в частности "пробелы" и др. подобные символы опускаются.
Базиля вне форума Ответить с цитированием
Старый 10.01.2014, 04:01   #5
Shenan
Пользователь
 
Регистрация: 27.10.2010
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Базиля Посмотреть сообщение
используете оператор потокового ввода для считывания данных, при котором и происходит преобразование некоторых символов, в частности "пробелы" и др. подобные символы опускаются.
а можно немного подробнее. я с С++ так себе прогер...
Shenan вне форума Ответить с цитированием
Старый 10.01.2014, 04:08   #6
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Вот все то, что от Вас требуется...
Код:

    ...

    ifstream in ( fileName );

    ...

    while ( !in.eof() ) {
        in >> number;
        //здесь можно сразу выводить символ из текста
    }

    ...
Базиля вне форума Ответить с цитированием
Старый 10.01.2014, 04:14   #7
Shenan
Пользователь
 
Регистрация: 27.10.2010
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Базиля Посмотреть сообщение
Вот все то, что от Вас требуется...
Код:

    ...

    ifstream in ( fileName );

    ...

    while ( !in.eof() ) {
        in >> number;
        //здесь можно сразу выводить символ из текста
    }

    ...
т.е. здесь мы просто идем по файлу пока не конец (по файлу я так понимаю 2му - с числами) и считываем данные из файла в буфер хранения number, так? а как сравнение сделать?
Shenan вне форума Ответить с цитированием
Старый 10.01.2014, 04:18   #8
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Да, это обработка второго файла.
Цитата:
а как сравнение сделать?
О каком сравнении идет речь?
Базиля вне форума Ответить с цитированием
Старый 10.01.2014, 04:20   #9
Shenan
Пользователь
 
Регистрация: 27.10.2010
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Базиля Посмотреть сообщение
Да, это обработка второго файла.

О каком сравнении идет речь?
о сравнении чисел из 2го файла с порядковыми номерами "букв" из первого) или я чего-то не понимаю?
Shenan вне форума Ответить с цитированием
Старый 10.01.2014, 04:25   #10
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Цитата:
Вывести на экран символы первого файла с позиций, указываемых числами из второго файла.
Позиция у Вас это number
Вам остается только обратиться к этой позиции через оператор индексации.
Ну допустим это будет так:
Код:
...

cout << text[ number ];

...
Вставить это в цикл заместо комментария.
Базиля вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами interprise777 Общие вопросы C/C++ 5 14.05.2013 18:22
Работа с файлами VENOMIK Помощь студентам 1 17.02.2012 12:19
работа с файлами на с++ fireridlle Помощь студентам 3 09.02.2011 14:06
Работа с файлами JamS007 Общие вопросы C/C++ 4 27.06.2009 22:03
Работа с файлами в С++ ai\ekcah^p Помощь студентам 2 21.06.2009 16:16