Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
akk
44 / 44 / 7
Регистрация: 28.01.2012
Сообщений: 341
#1

Обращение к строкам файла по ее номеру - C++

23.03.2013, 17:39. Просмотров 589. Ответов 3
Метки нет (Все метки)

К примеру есть файл file.txt, написанный в текстовом редакторе, с таким содержанием
Кликните здесь для просмотра всего текста

The quick brown fox jumps over the lazy dog.
Jackdaws love my big sphinx of quartz.
The five boxing wizards jump quickly.

Можно ли как-то обратиться по номеру строки, чтобы вывести ее на экран.

Я понимаю, что нужно использовать seekg, read те
C++
1
2
3
char out[100];
file.seekg((n-1)*sizeof(out), file.beg);
file.read(reinterpret_cast<char *> (&out), sizeof(out));
Но если так делать, то сначала через мою программу нужно будет записать этот файл, а я хочу, чтобы можно было только прочитать, и при этом написать этот файл в блокноте. Если строки должны быть одинаковой длины, то пусть она равняется 100 символам.
Как такое сделать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2013, 17:39     Обращение к строкам файла по ее номеру
Посмотрите здесь:
C++ Произвольный доступ к строкам файла
C++ Чтение по строкам из текстового файла
Получить строку файла по номеру C++
C++ Считывание из файла по номеру строки
C++ По заданным номеру масти и номеру достоинства карты определить полное название
Обращение посимвольно к строки из файла C++
C++ Обращение к структуре из другого файла
Не копируется структура C++ (по введеному номеру телефона удалить информацию из файла) C++
C++ Заполнить матрицу так, чтобы элемент в нечетной строке был равен номеру столбца, а в четном — номеру строки
Составить программу, которая по введенному номеру месяца и номеру года выводит количество дней в этом месяце(использовать операторы printf и scanf) C++
Создать 100 файлов. Имя каждого файла должно соответствовать его поряд-ковому номеру. C++
C++ по строкам

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
4285 / 1407 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
23.03.2013, 18:34     Обращение к строкам файла по ее номеру #2
seekg и read - это вроде для бинарных файлов. Можно так:
C++
1
2
3
4
5
6
    std::size_t pos = 3; // Г*ГіГ¦Г*Г*Гї ïîçèöèÿ
    char str[300];
    std::ifstream f("text.txt");
    for (int i=0; i != pos; ++i)
       f.getline(str, 100);
    std::cout<<str;
akk
44 / 44 / 7
Регистрация: 28.01.2012
Сообщений: 341
23.03.2013, 18:56  [ТС]     Обращение к строкам файла по ее номеру #3
BumerangSP, Этот вариант подходит, если в файле максимум 20 строк, последовательный доступ, обрабатываться будет долго. А мне нужно чтобы доступ к строкам файла был как доступ к элементам массива. Конечно для этого есть базы данных, но для моей задачи это ужу чересчур.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.03.2013, 21:03     Обращение к строкам файла по ее номеру #4
Произвольный доступ только через seekg/seekp. Если строки произвольной длины, то сразу попасть в начало заданной строки не получится. Потребуется некий перебор символов/строк: например, поиск и подсчёт '\n'.
Yandex
Объявления
23.03.2013, 21:03     Обращение к строкам файла по ее номеру
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru