Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/91: Рейтинг темы: голосов - 91, средняя оценка - 4.62
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517

<fstream> как копировать файлы?

21.06.2011, 21:55. Показов 19951. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Какой функцией можно скопировать нужный файл?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.06.2011, 21:55
Ответы с готовыми решениями:

Как создавать файлы dat и вводить в них данные (при помощи fstream)?
как создавть файлы .dat и вводить в них данные

Файлы FILE и fstream
Подскажите, пожалуйста. В большинстве примеров и прочей не сильно официальной литературе при работе с файлами используется: FILE...

Fstream и бинарные файлы
Необходимо скопировать картинку. Не знаю как сделать.

17
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
21.06.2011, 21:57
link
1
 Аватар для OstapBender
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
21.06.2011, 22:00
Gepar, нет такой функции.
C++
1
2
3
4
5
6
7
    std::ifstream ifs("1.txt");
    std::ofstream ofs("2.txt");
 
    std::string str;
 
    while (std::getline(ifs,str))
        ofs << str << '\n';
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
21.06.2011, 22:18
Наверное, правильно будет открыть файл на чтение в бинарном режиме и считывать его соответсвующим образом (методом read)- это в самом общем, случае мы ведь не знаем, какой у ТС файл. Может, у него именно бинарный (в смысле НЕтекстовый). Предложенным способом, кстати, мы перегоним в новый файл только одну строку.
0
 Аватар для OstapBender
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
21.06.2011, 22:50
Цитата Сообщение от kravam Посмотреть сообщение
Наверное, правильно будет открыть файл на чтение в бинарном режиме и считывать его соответсвующим образом (методом read)- это в самом общем, случае мы ведь не знаем, какой у ТС файл. Может, у него именно бинарный (в смысле НЕтекстовый)
да, это так.

Цитата Сообщение от kravam Посмотреть сообщение
Предложенным способом, кстати, мы перегоним в новый файл только одну строку.
нет, я проверил же перед тем как кинуть.

getline возвращает поток, т.е запись аналогична
C++
1
2
3
4
5
    while (ifs) {
        std::getline(ifs,str);
        if (ifs.fail()) break;
        ofs << str << '\n';
    }
или более лаконично while (1) ...
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
21.06.2011, 22:56
Я блин бился-бился над тем, как текстовый файл в строку перегнать, а тут раз- и в дамки....
+++++++++++++++++++++++++++++++++++++++
http://www.cplusplus.com/reference/string/getline/

Цитата:
istream& getline ( istream& is, string& str );
....
The delimiter character is delim for the first function version,
and '\n' (newline character) for the second.

На всякий случай- какой компилятор?
0
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
21.06.2011, 22:57  [ТС]
И всё равно что-то не верится что стандартной функции никакой нет
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
21.06.2011, 23:03
Можно CopyFile
0
 Аватар для OstapBender
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
21.06.2011, 23:06
Gepar, придётся поверить.
можешь сам посмотреть, стандартная библиотека не подразумевает такой функции
http://www.cplusplus.com/refer... m/fstream/

сторонние штуки типа Api или QFile такие функции имеют...

kravam,
VS2008
0
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
21.06.2011, 23:07
Цитата Сообщение от Gepar Посмотреть сообщение
И всё равно что-то не верится что стандартной функции никакой нет
Рас уж предложили WinAPI, то можно посмотреть и в сторону boost::filesystem::copy_file.
1
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
21.06.2011, 23:10
OstapBender, был неправ
0
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
22.06.2011, 15:42  [ТС]
Если уж в сторону winapi, то может проще сделать через стандартную коммандную строку (через вызов system), я правда так только очистку экрана до этого делал, если кто знает как это сделать через коммандную строку - напишите пожалуйста, в winapi пока закапываться не хочу.
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
22.06.2011, 15:48
Gepar, а чем вам не нравится вариант из 2-го поста?
0
 Аватар для OstapBender
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
22.06.2011, 16:02
Gepar,
C
1
system("copy D:\\1.txt D:\\2.txt");
1
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
22.06.2011, 16:12
Как вариант
C++
1
2
3
std::ifstream in("input.txt");
std::ofstream out("output.txt");
out << in.rdbuf();
0
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
22.06.2011, 16:31  [ТС]
diagon, было бы круто если бы работало
OstapBender, годится, теперь бы ещё информацию о том что оно скопировало файл не показывало бы ... есть какой-то флаг чтобы не писал отчёт? Можно конечно очистить экран, но это не то так как очистится всё.

Добавлено через 49 секунд
Maxwe11, слишком длинно, да и мне надо конструкция которую не сложно запомнить и можно использовать, а так мне что ту функцию как шаблон где-то держать чтоли, это не выход.
0
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
22.06.2011, 16:34
Цитата Сообщение от Gepar Посмотреть сообщение
, теперь бы ещё информацию о том что оно скопировало файл не показывало бы
Мб попробуй так, точно не уверен:
C++
1
system("copy D:\\1.txt D:\\2.txt >> void");
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
22.06.2011, 16:41
Лучший ответ Сообщение было отмечено как решение

Решение

Gepar, Ну вообще-то пример diagon работает...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <boost/filesystem/fstream.hpp>
#include <iostream>
 
namespace fs = boost::filesystem;
 
int main()
{
    try
    {
       fs::path from("abc.txt");
       fs::path to("abcd.txt");
       fs::copy_file(from, to);
    }
    catch(const fs::filesystem_error& e)
    {
       std::cerr << e.what() << '\n';
    }
}
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.06.2011, 16:41
Помогаю со студенческими работами здесь

Fstream и бинарные файлы
вообщем вопрос такой.. как читать строки из бинарного файла, и как записывать в бинарный файл строки используя fstream, и можно ли...

Как копировать залочены эксплорером файлы
Интернет эксплорер загружая поточное видео (файлы с YouTube и пр. сайтов), в каталоге временных файлов создаёт временный flv файл, который...

Запись/чтение структур (файлы) + разница между FILE * и <fstream>
Всем привет. Порыскал по форуму, погуглил... Решения есть, но они не ясны (что, почему да как) и не все работают. Однако, я так и не нашёл...

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

Как работает write в fstream?
есть файл с текстом: fstream f(&quot;f.txt&quot;,ios::in); надо его разделить его на части по сколько-то байт (переменная piece) создаю...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru