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

копирование файла - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
wesleepforever
0 / 0 / 0
Регистрация: 27.06.2011
Сообщений: 13
27.06.2011, 23:34     копирование файла #1
Напишите программу копирования заданного текстового файла в
другой текстовый файл с удалением пустых строк
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.06.2011, 23:34     копирование файла
Посмотрите здесь:

C++ Копирование файла
Копирование файла C++
C++ Копирование из оного файла в др.
C++ Копирование строк с файла
C++ Копирование файла C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
27.06.2011, 23:43     копирование файла #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <fstream>
#include <iostream>
#include <conio.h>
using namespace std;
 
void main(void) {
    fstream   fp_in("input.txt", ios_base::in);
    fstream   fp_out("output.txt",  ios_base::out);
 
    char buffer[1024];
    while(!  fp_in.eof() ) {
            fp_in.getline(buffer, sizeof(buffer), '\n');
            if( strlen(buffer) > 0 ) {
                 fp_out.write(buffer, strlen(buffer));
                 fp_out.put('\n');
            }
    }
    fp_in.close();
    fp_out.clear();
 
      cin.get();
}
kreedz
 Аватар для kreedz
6 / 6 / 1
Регистрация: 29.11.2009
Сообщений: 100
30.06.2011, 21:08     копирование файла #3
Эта программка должна скопировать первый файл во второй файл.
Файлы текстовые. Язык Си.
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
#include <stdio.h>
 
void filecopy(FILE*, FILE*);
 
int main() {
    FILE *in = fopen("from.txt", "r"), *out = fopen("to.txt", "w");
    
    if (in == NULL || out == NULL) {
        printf("Can't open files\n");
        return 1;
    }
 
    filecopy(in, out);
    
    fclose(in);
    fclose(out);
    
    return 0;
}
 
void filecopy(FILE *ifp, FILE *ofp) {
    int c;
    
    while ((c = gets(ifp)) != EOF) 
        putc(c, ofp);
}
Ошибки:
копирование файла

Эту программку переделывал из этой (книга Керригана и Ритчи, глава 7.5, реализация утилиты cat):
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
#include <stdio.h>
 
int main(int argc, char *argv[]) {
    FILE *fp;
    void filecopy(FILE *, FILE *);
    
    if (argc == 1) filecopy(stdin, stdout);
    else    while (--argc > 0)
                if ((fp = fopen(*++argv, "r")) == NULL) {
                    printf("Can't open %s\n", *argv);
                    return 1;
                } else {
                    filecopy(fp, stdout);
                    fclose(fp);
                }
                
    return 0;
}
 
void filecopy(FILE *fp, FILE *ofp) {
    int c;
    
    while ((c = getc(fp)) != EOF) putc(c, ofp);
}
Вторая работает, естественно, без ошибок, а моя, переделанная, с ошибками.
Кто, что подскажет?
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
30.06.2011, 21:22     копирование файла #4
во второй используется getc, а в первой почему-то gets, хотя там должна быть та же getc
Protected_fleur
0 / 0 / 0
Регистрация: 29.06.2011
Сообщений: 77
30.06.2011, 21:52     копирование файла #5
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <conio.h>
main ()
{ 
 
char s[4096]; /*Символьный массив*/
FILE *fl1, *fl2; /*Указатель на файл*/
fl1 = fopen ("input.txt", "r+"); /*Открытие файла для записи и чтения*/
fl2 = fopen ("output.txt", "w+"); /*Создание файла для записи и чтения*/
while (NULL != fgets (s,4096,fl1)) /*Чтение строк файла*/
{
      fprintf (fl2, "%s", s); /*Вывод строк в файл*/
}
fclose(fl1); /*Закрытие файла*/
fclose(fl2); /*Закрытие файла*/
 
getch();
return 0;
}
вот прога, копирует из текстового файла в новый файл
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
30.06.2011, 21:57     копирование файла #6
Protected_fleur, а зачем оба файла открывать для записи и чтения?
Protected_fleur
0 / 0 / 0
Регистрация: 29.06.2011
Сообщений: 77
30.06.2011, 22:00     копирование файла #7
Цитата Сообщение от Protected_fleur Посмотреть сообщение
fl1 = fopen ("input.txt", "r+");
ну да здесь можно и без +
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
30.06.2011, 22:04     копирование файла #8
Так и во втором тоже можно без +. Я к тому, что программист (не в смысле профессии, а автор программы) должен чётко выражать свои намерения. И если из файла будут только читать, то не стоит открывать его ещё и для записи. И наоборот.

Не по теме:

Ну да, занудствую немного

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2011, 22:08     копирование файла
Еще ссылки по теме:

C++ копирование файла
C++ Структуры, копирование файла
C++ Копирование файла C++

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

Или воспользуйтесь поиском по форуму:
Protected_fleur
0 / 0 / 0
Регистрация: 29.06.2011
Сообщений: 77
30.06.2011, 22:08     копирование файла #9
я писала ее давно, если уж так))) а тогда и для меня это было кошмаром что с плюсиками, что без них)))
но в дальнейшем буду стараться четко выражать идею)))
Yandex
Объявления
30.06.2011, 22:08     копирование файла
Ответ Создать тему
Опции темы

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