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

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

Восстановить пароль Регистрация
 
gogaby
1 / 1 / 0
Регистрация: 15.11.2011
Сообщений: 28
06.12.2011, 16:00     Строки в файле #1
Вопрос: Как можно скопировать строки из одного текстового файла в другой в нужном мне поряде?
например сначала пятую, потом вторую, потом первую и т.д.? файлы C. работа без потоков.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3582 / 1362 / 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++
3582 / 1362 / 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     Строки в файле
Ответ Создать тему
Опции темы

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