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

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

Войти
Регистрация
Восстановить пароль
 
gogaby
1 / 1 / 0
Регистрация: 15.11.2011
Сообщений: 28
#1

Строки в файле - C++

06.12.2011, 16:00. Просмотров 354. Ответов 3
Метки нет (Все метки)

Вопрос: Как можно скопировать строки из одного текстового файла в другой в нужном мне поряде?
например сначала пятую, потом вторую, потом первую и т.д.? файлы C. работа без потоков.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2011, 16:00     Строки в файле
Посмотрите здесь:

C++ Поиск строки в файле
C++ Замена строки в файле
C++ Перевернуть строки в файле
Замена строки в файле C++
Наличие строки в файле C++
Поиск строки в файле C++
C++ Пропуск строки в файле
Замена строки в файле C++
Поиск строки в файле C++
C++ Замена строки в файле
C++ Пропуск строки в файле
C++ Изменение строки в файле

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3584 / 1364 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
06.12.2011, 16:18     Строки в файле #2
C
1
2
3
4
5
char buf [1000][BUFSIZ];
int i = 0;
...
while ( feof (in_file) ) 
     fgets (buf[i++],BUFSIZ,in_file);
Добавлено через 51 секунду
C
1
2
buf [0];// Первая строчка
buf [1];// Вторая
gogaby
1 / 1 / 0
Регистрация: 15.11.2011
Сообщений: 28
06.12.2011, 16:21  [ТС]     Строки в файле #3
спасибо, я примерно так и делал, но препод отказался принимать мою программу, из-за того, что она хранит все строки в массиве и из-за этого занимает большой объем памяти(( может можно как-то обойтись без хранения всего файла в памяти?
go
Эксперт C++
3584 / 1364 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
06.12.2011, 16:30     Строки в файле #4
gogaby, Можете использовать динамический массив, для хранения данных в куче.
fseek использовать не получится, так как размер строк везде будет разный

Добавлено через 1 минуту
Можете считать кол-во '\n', после первого будет вторая строка, после второго будет третья и т.д

Добавлено через 2 минуты
Вот еще простой вариант, меньше памяти занимает, чем первый
C
1
2
3
4
5
6
7
8
9
char buf [BUFSIZ];
char *arr[1000];
int i = 0;
...
while ( feof (in_file) ) 
{
     fgets (buf,BUFSIZ,in_file);
     arr[i++] = strdup (buf);
}
Yandex
Объявления
06.12.2011, 16:30     Строки в файле
Ответ Создать тему
Опции темы

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