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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.70
Temikk2
2 / 2 / 0
Регистрация: 12.12.2011
Сообщений: 128
#1

Скопировать в файл F2 только четные строки из F1 - C++

29.12.2011, 14:30. Просмотров 3692. Ответов 27
Метки нет (Все метки)

Постановка задачи:
Создать текстовый файл F1 не менее, чем из 10 строк и записать в него информацию
Выполнить задание.
При разработке алгоритма считать, что количество строк в исходном файле заранее неизвестно.

1) Скопировать в файл F2 только четные строки из F1.
2) Подсчитать размер файлов F1 и F2 (в байтах).

Нужно написать программу.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.12.2011, 14:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Скопировать в файл F2 только четные строки из F1 (C++):

Скопировать только чётные строки в другой файл - C++
Добрый день. Условие задачи: в файле F1.txt построчно записаны "Имя Фамилия". Нужно в файл F2 скопировать только чётные строки. Выбивает...

Скопировать в файл F2 только те строки из F1, которые начинаются с буквы «А» - C++
не могу решить задачу, не откажусь от помощи, добрые люди))) Создать текстовый файл F1 не менее, чем из 10 строк и записать в него...

Скопировать в файл F2 только те строки из F1, которые начинаются с буквы «А» - C++
Здравствуйте дорогие друзья , когда я был маленький , я любил (да и люблю) играть в игры , поэтому решил я стать программистом , ну и пошел...

Файл: Скопировать текст в другой текстовый файл файл, но чётные строки должны быть с большой буквы... - C++
Создать текстовый файл. Скопировать текст в другой текстовый файл файл, но чётные строки должны быть с большой буквы, а нечетные с...

Дан текстовый файл, в котором записана последовательность целых чисел. Записать в новый файл только четные из них - C++
Дан текстовый файл, в котором записана последовательность целых чисел. Записать в новый файл только четные из них. Помогите пожалуста!!! ...

Скопировать только буквы строки - C++
Доброго всем здравия, духовного и телесного. Хочу скопировать строку без пробелов, знаков препинания, цифр. Будьте добры укажите на...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
28.01.2012, 23:26 #16
Цитата Сообщение от Temikk2 Посмотреть сообщение
2) Подсчитать размер файлов F1 и F2 (в байтах).
C
1
2
3
4
5
FILE * pFile;
long size;
 
fseek (pFile, 0, SEEK_END);
size = ftell (pFile);
Temikk2
2 / 2 / 0
Регистрация: 12.12.2011
Сообщений: 128
28.01.2012, 23:29  [ТС] #17
Я конечно извиняюсь за свою наглость, но можно пожалуйста весь код.
ББК
34 / 34 / 6
Регистрация: 10.11.2011
Сообщений: 94
29.01.2012, 00:49 #18
Temikk2, а сами не пробывали написать(задание то простое)
Temikk2
2 / 2 / 0
Регистрация: 12.12.2011
Сообщений: 128
29.01.2012, 01:00  [ТС] #19
пробовал!
retmas
Жарю без масла
859 / 741 / 164
Регистрация: 13.01.2012
Сообщений: 1,694
29.01.2012, 01:37 #20
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
 
int main(int argc, char** argv)
{
    FILE* fin;
    FILE* fout;
    size_t size1, size2;
    char line[BUFSIZ];
    int line_num = 0;
    
    fin = fopen("file1", "r");
    fout = fopen("file2", "w");
    
    fseek(fin, 0, SEEK_END);
    size1 = ftell(fin);
    fseek(fin, 0, SEEK_SET);
    
    while(!feof(fin))
    {
        fgets(line, BUFSIZ, fin);
        ++line_num;
        if(line_num % 2 == 0)
            fputs(line, fout);
    }
    
    fseek(fout, 0, SEEK_END);
    size2 = ftell(fout);
    fseek(fout, 0, SEEK_SET);
    
    fclose(fout);
    fclose(fin);
    
    printf("file1 size: %ld\nfile2 size: %ld", size1, size2);
    return 0;
}
Temikk2
2 / 2 / 0
Регистрация: 12.12.2011
Сообщений: 128
29.01.2012, 16:54  [ТС] #21
Программа не работает вот что высвечивает, фото ошибки во вложенном файле.
Вложения
Тип файла: doc Документ Microsoft Word.doc (32.0 Кб, 18 просмотров)
retmas
Жарю без масла
859 / 741 / 164
Регистрация: 13.01.2012
Сообщений: 1,694
29.01.2012, 17:11 #22
скорее всего вы просто неверно указали в программе файлы для ввода/вывода
Temikk2
2 / 2 / 0
Регистрация: 12.12.2011
Сообщений: 128
29.01.2012, 23:03  [ТС] #23
в смысле? это путь файла надо указать?
retmas
Жарю без масла
859 / 741 / 164
Регистрация: 13.01.2012
Сообщений: 1,694
29.01.2012, 23:21 #24
после
C
1
fin = fopen("file1", "r");
напишите
C
1
2
if(!fin)
    perror("Error opening file");
и если вам выведет что то вроде
Error opening file: no such file or directory
значит вы неправильно указываете файл для чтения в ф-ии fopen
Temikk2
2 / 2 / 0
Регистрация: 12.12.2011
Сообщений: 128
29.01.2012, 23:27  [ТС] #25
да так оно и есть! я понял свою ошибку но не знаю как исправить! где и как указывать путь файла?
retmas
Жарю без масла
859 / 741 / 164
Регистрация: 13.01.2012
Сообщений: 1,694
29.01.2012, 23:33 #26
Цитата Сообщение от Temikk2 Посмотреть сообщение
где
в ф-и fopen
Цитата Сообщение от Temikk2 Посмотреть сообщение
как указывать путь файла
на худой конец укажите полный путь к файлу, например, fin = fopen("D:\\папки\\file1", "r");
Temikk2
2 / 2 / 0
Регистрация: 12.12.2011
Сообщений: 128
30.01.2012, 01:35  [ТС] #27
что то у меня не чо не получается(

Добавлено через 1 час 51 минуту
Наконец то! А можете подсказать где прописать
C++
1
system("Pause")
.Мне просто для отчета скриншот нужен.
Fady
5 / 5 / 0
Регистрация: 14.12.2014
Сообщений: 93
12.04.2015, 15:05 #28
retmas, извините пожалуйста( я разбираюсь тут с вашей программой, тоже проблема с путём, в чём я не правильно прописываю путь?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
 
int main(int argc, char** argv)
{
    FILE* fin;
    FILE* fout;
    size_t size1, size2;
    char line[BUFSIZ];
    int line_num = 0;
    
    fin = fopen("D:\\С++\\123\\file1.txt", "r");
    fout = fopen("D:\\С++\\123\\file2.txt", "w");
    
    fseek(fin, 0, SEEK_END);
    size1 = ftell(fin);
    fseek(fin, 0, SEEK_SET);
    
    while(!feof(fin))
    {
        fgets(line, BUFSIZ, fin);
        ++line_num;
        if(line_num % 2 == 0)
            fputs(line, fout);
    }
    
    fseek(fout, 0, SEEK_END);
    size2 = ftell(fout);
    fseek(fout, 0, SEEK_SET);
    
    fclose(fout);
    fclose(fin);
    
    printf("file1 size: %ld\nfile2 size: %ld", size1, size2);
    return 0;
}
Добавлено через 7 минут
retmas, извините за беспокойство забыла указать .txt в конце
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.04.2015, 15:05
Привет! Вот еще темы с ответами:

Через аргументы командной строки скопировать файл в файл - C++
Объясните, пожалуйста, как через аргументы командной строки скопировать файл в файл?

Скопировать из файла F1 в файл F2 строки, которые начинаются с буквы A - C++
я не особо эту тему понимаю, помогите кто может.

Скопировать из файла F1 в файл F2 все строки, начинающиеся на букву «А» - C++
Помогите пожалуйста,это срочно! Скопировать из файла F1 в файл F2 все строки, начинающиеся на букву «А» и Заканчивающиеся на букву «С»,...

Почему при записи в файл не выводятся четные строки? - C++
#include &lt;iostream&gt; #include &lt;cctype&gt; #include &lt;fstream&gt; #include &lt;cstdlib&gt; #include &lt;cstring&gt; using namespace std; int...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
12.04.2015, 15:05
Ответ Создать тему
Опции темы

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