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

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

Войти
Регистрация
Восстановить пароль
 
NEvOl
19 / 18 / 0
Регистрация: 13.08.2012
Сообщений: 726
#1

Работа с файлами - C++

04.11.2013, 21:16. Просмотров 316. Ответов 8
Метки нет (Все метки)

Здравствуйте, суть в том что необходимо сделать что-то типо копирования произвольного файла, т.е. выбираю файл будь то изображение, документ, текстовый документ или экзашник, и он должен копироваться в папку с проектом, пробовал делать так:
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
    ifstream input;
    ofstream output;
    if(!OpenDialog1->Execute())
        return;
 
    wchar_t *FileName = OpenDialog1->FileName.c_str();  
 
    input.open(FileName, ios::binary);
    wchar_t *FileName1 = ReName(FileName);//функция просто добавляет к имени файла 1
    output.open(FileName1, ios::out);
 
 
    if(!input)
        return;
 
    if(!output)
        return;
 
     char c,b;
    while(input>>b)
    {
        c = b;
        output<<c;
    };
 
    input.close();
    output.close();
но так получается только с текстовыми, подскажите что не так ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2013, 21:16     Работа с файлами
Посмотрите здесь:

Работа с файлами - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;cstring&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;fstream&gt; using...

Работа с файлами - C++
Дан файл File_in.dat, содержащий 65536 целых чисел. Считать из файла 9 чисел начиная с 150-го. Сформировать из них матрицу A(3х3) и...

Работа с файлами в C, C++ - C++
Есть, файл в котором храниться много чисел типа double Файл был записан следующим образом FILE * yy1; ...

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

Работа с файлами - C++
Случайным образом создать таблицу пар значений и записать её в текстовый файл в виде: n * c 5 ...

Работа с файлами. - C++
Имеется файл txt с текстом. Как узнать номер строки в которой только одно слово записано. И как его скопировать в другой файл.

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
04.11.2013, 21:45     Работа с файлами #2
test - исполняемый фаил этой программы( в виндовсе .exe)
file.dat - бинарный файл куда перезаписываем содержимое первого

Как то так наверное

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ifstream in("/home/egor/CODES/test/test",ios::binary|ios::in); //Открываем файл в двоичном режиме только для чтения
ofstream out("/home/egor/CODES/test/file.dat",ios::binary|ios::out); //Открываем файл в двоичном режиме для записи
char a;
 
while(in >> a)
    out << a;
 
in.close(); //Закрываем файл
out.close(); 
 
in.open("/home/egor/CODES/test/file.dat",ios::binary|ios::in);
while(in >> a)
   cout << a; //смотрим каракули на экране(содержимое бинарного файла file.dat)
 
in.close();
NEvOl
19 / 18 / 0
Регистрация: 13.08.2012
Сообщений: 726
04.11.2013, 21:57  [ТС]     Работа с файлами #3
мне нужно что бы создавался не dat-овский файл а точно такой же какой и открыли, заметил что размеры файлов отличаются т.е. если я открыл файл изображения весом 37кб то копированный весит 36кб следовательно что-то недописывается, но я не понимаю в чем проблема.
FreeMan108
121 / 121 / 6
Регистрация: 04.03.2013
Сообщений: 370
04.11.2013, 21:57     Работа с файлами #4
А почему бы просто не CopyFile
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
04.11.2013, 22:02     Работа с файлами #5
не нужно что бы создавался не dat-овский файл
Это не dat фаил, это я имя придумал, я на линуксе пишу мне разрешения вообще можно не указывать, раз выполняемый фаил моей програмы называется test то пусть фаил назначения будет test1(в вашем случае например *.exe или *.txt, а адрес назначения *1.exe или *1.txt )
NEvOl
19 / 18 / 0
Регистрация: 13.08.2012
Сообщений: 726
04.11.2013, 22:11  [ТС]     Работа с файлами #6
Цитата Сообщение от FreeMan108 Посмотреть сообщение
А почему бы просто не CopyFile
спасибо но охото самому сделать, так сказать узнать в чем соль

Добавлено через 1 минуту
Цитата Сообщение от egor2116 Посмотреть сообщение
Это не dat фаил, это я имя придумал, я на линуксе пишу мне разрешения вообще можно не указывать, раз выполняемый фаил моей програмы называется test то пусть фаил назначения будет test1(в вашем случае например *.exe или *.txt, а адрес назначения *1.exe или *1.txt )
так почему-то не работает пробую пока с jpg файлами
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
04.11.2013, 22:17     Работа с файлами #7
NEvOl, попробуйте так должно все заработать, токо свои пути поставите.
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
#include <iostream>
#include <fstream>
 
using namespace std;
 
int main(){
 
ifstream in("/home/egor/CODES/test/test",ios::binary|ios::in); //Открываем файл в двоичном режиме только для чтения
ofstream out("/home/egor/CODES/test/file.dat",ios::binary|ios::out); //Открываем файл в двоичном режиме для записи
char a;
 
while(in.get(a))
    out.put(a);
 
in.close(); //Закрываем файл
out.close(); 
 
in.open("/home/egor/CODES/test/file.dat",ios::binary|ios::in);
while(in.get(a))
    cout << a; //смотрим каракули на экране(содержимое бинарного файла file.dat)
 
in.close();
 
return 0;
}
NEvOl
19 / 18 / 0
Регистрация: 13.08.2012
Сообщений: 726
04.11.2013, 22:22  [ТС]     Работа с файлами #8
да так заработало, а почему с помощью операторов >>, << не работало ?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2013, 22:27     Работа с файлами
Еще ссылки по теме:

Работа с файлами - C++
Здраствуйте, помогите пожалуйста, решить задачки мне они очень нужны на завтра, я ещё не очень понимаю, как их решать, помогите...

Работа с файлами. - C++
Работа с файлами Задача 1 Создать файл, содержащий сведения о книгах в библиотеке. Структура записи: шифр книги, автор, название, год...

Работа с файлами - C++
Задание : напишите программу, которая объединяет возможности программ “Добавление в файл” и “Поиск по файлу”. При запуске программы на...

Работа с файлами - C++
Помогите исправить ошибки, не знаю, как убрать бесконечный цикл. Дан текстовый файл. В нем записаны слова. Во второй файл записать самое...


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

Или воспользуйтесь поиском по форуму:
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
04.11.2013, 22:27     Работа с файлами #9
да так заработало, а почему с помощью операторов >>, << не работало ?
точно не помню надо ману курить, в с++ с этими чтением и записью файлов вечный геморой 180 способов и вечно путаю, но привыкаешь
Yandex
Объявления
04.11.2013, 22:27     Работа с файлами
Ответ Создать тему
Опции темы

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