Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 03.03.2010
Сообщений: 18

Добавить в конец первого файла содержимое второго

14.04.2010, 14:03. Показов 2824. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите разобраться кто сможет!
тут такое дело ошибки есть!
задание: Даны два текстовых файла. Добавить в конец первого файла содержимое второго файла.
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <iomanip>
#include <stdio.h>
 
using namespace std;
 
void Text5(char *fname, char *s);
void Text6(char *fn1, char *fn2);
 
void main (){
    const int N=1024;
    char *s = new char [N];
 
    SetConsoleOutputCP (1251);
    SetConsoleCP(1251);
 
    cout << "\nCтрока?";
    cin.getline(s, N-1);
 
    Text5("1.txt", s);
    Text6("2.txt", "1.txt");
    
    delete []s;
}//main
 
void Text5(char *fname, char *s)
{
    FILE *f;
    f = fopen(fname, "r+");
        if (!f){
        cout << "\nОшибка!Файл отсутствует!" << fname<<"\n\n";
        return;
    }//if
    //переход в конец файла
    fseek(f, 0, SEEK_END);
 
    //Дописать в конец файла
    fputs (s, f);  fputs("\n", f);
 
    //Закончить файл
    fclose (f);
}//Text
 
void Text6(char *fn1, char *fn2)
{
    FILE *f1, *f2;
 
    //в конец fn1 записать содержимие fn2
    
    f1 = fopen(fn2, "r+");
        if (!f2){
    cout << "Ошибка!Файл отсутствует! " << fn1 << "\n";
        return;
    }//if
    f2 = fopen (fn2, "r");
        if(!f2){
    cout << "Ошибка!Файл отсутствует! " << fn2 << "\n";
    fclose(f1);
        return;
    }//if
    //переход в конец f1
    fseek(f1, 0, SEEK_END);
        char *s = new char [1024];
 
    //чтение из f2 и запись в f1
        while(fgets(s,1024,f2))//
         {
       fputs(s,f1);
       }//while
 
        //закрываем файлы
        fclose(f1);
        fclose(f2);
}//text
Выдаёт такие ошибки:
Предупреждение 1 warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\visual\text5,6\text5,6\text5,6.cpp 31 text5,6
Предупреждение 2 warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\visual\text5,6\text5,6\text5,6.cpp 52 text5,6
Предупреждение 3 warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\visual\text5,6\text5,6\text5,6.cpp 57 text5,6
Предупреждение 4 warning C4700: использована неинициализированная локальная переменная "f2" d:\visual\text5,6\text5,6\text5,6.cpp 53 text5,6
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.04.2010, 14:03
Ответы с готовыми решениями:

Добавить в конец первого файла содержимое второго файла
Text6. Даны два текстовых файла. Добавить в конец первого файла содержимое второго файла. Помогите пожалуйста с решением, а желательно с...

Добавить в конец первого текстового файла содержимое второго текстового файла
Даны два текстовых файла. Добавить в конец первого файла содержимое второго файла.

Записать в третий файл через один содержимое первого файла и второго
Даны 2 файла содержащие числа , записать в 3 файл через один содержимое первого файла и второго файла и сумму первого и второго

11
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
14.04.2010, 14:27
А тебе случаем не это надо?

Добавлено через 1 минуту
Цитата Сообщение от Dareami Посмотреть сообщение
Предупреждение 4 warning C4700: использована неинициализированная локальная переменная "f2" d:\visual\text5,6\text5,6\text5,6.cpp 53 text5,6
Замени у себя 53 строку на
C
1
if (!f1){
1
0 / 0 / 0
Регистрация: 03.03.2010
Сообщений: 18
14.04.2010, 14:31  [ТС]
Оо, судя по заданию это!)

Добавлено через 2 минуты

вот только копирует из 1 файла и записывает в первый же, а надо что б копировало из 2 и записало в первый)
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
14.04.2010, 14:35
Смотрим внимательно:
Файл "input.txt" записывается в конец файла "output.txt".
Что означает, что второй файл ("input.txt"), добавляется в конец первого файла ("output.txt")
0
0 / 0 / 0
Регистрация: 03.03.2010
Сообщений: 18
14.04.2010, 14:44  [ТС]
хм, а где это?
из второго в первый надо! Не вижу строку

Добавлено через 2 минуты

хм, а где это?
из второго в первый надо! Не вижу строку
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
14.04.2010, 14:49
Пусть второй файл - это файл "input.txt", первый файл - это файл "output.txt".
Буфер второго ("input.txt") файла (то есть весь второй файл целиком) копируется в конец первого файла ("output.txt") в строчке 8:
C++
1
ofs << ifs.rdbuf();
0
0 / 0 / 0
Регистрация: 03.03.2010
Сообщений: 18
14.04.2010, 14:53  [ТС]
извини я не программист, но при добавлении этой строки море ошибок!
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
14.04.2010, 14:56
А у меня все работает.
Если ты добавляешь эту строку в СВОЮ программу, то ошибки у тебя будут точно.

Чтобы не было ошибок, нужно использовать программу полностью:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <fstream>
 
int main()
{
        std::ifstream ifs("input.txt");
        std::ofstream ofs("output.txt", std::ios::app);
        ofs << ifs.rdbuf();
        system("pause");
        return 0;
}
1
0 / 0 / 0
Регистрация: 03.03.2010
Сообщений: 18
14.04.2010, 14:59  [ТС]
Цитата Сообщение от Nameless One Посмотреть сообщение
А у меня все работает.
Если ты добавляешь эту строку в СВОЮ программу, то ошибки у тебя будут точно.

Чтобы не было ошибок, нужно использовать программу полностью:
Ты конечно извини, но вот это
C++
1
2
       std::ifstream ifs("input.txt");
        std::ofstream ofs("output.txt", std::ios::app)
как раз мы не учили, перед преподавателем я не смогу отмазаться никак...)
Мы так как раз и не пишем честно говоря..
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
14.04.2010, 15:04
Мы так как раз и не пишем честно говоря
Тогда и мой пример ты использовать не можешь, так как он основан на файловых потоках С++, а не на файлах С, как у тебя.

Тогда тебе нужно исправлять свой пример. Начни с этого:
Замени у себя 53 строку на
C
1
if (!f1)
Добавлено через 2 минуты
Кстати, почему вам запрещают использовать функции С++, а оператор new - разрешают?
1
0 / 0 / 0
Регистрация: 03.03.2010
Сообщений: 18
14.04.2010, 15:16  [ТС]
Да учимся то всего пол года только, может ещё не дошли, это как основа, а я не на программиста просто, 53 исправил, но копирует из 1 и записывает в 1 (

Добавлено через 4 минуты
Nameless One, Спасибо тебе большое, я нашёл ошибки свои с твоей помощью!
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
14.04.2010, 15:20
Всегда пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.04.2010, 15:20
Помогаю со студенческими работами здесь

Добавить в конец первого файла содержимое второго, а в конец второго файла — содержимое первого
Задача 8. Даны два текстовых файла. Добавить в конец первого файла содержимое второго, а в конец второго файла - содержимое первого файла

Добавить в конец первого файла содержимое второго, а в конец второго файла — содержимое первого
. Даны два текстовых файла. Добавить в конец первого файла содержимое второго, а в конец второго файла - содержимое первого файла

Даны два текстовых файла. Добавить в конец первого файла содержимое второго файла
3)Даны два текстовых файла. Добавить в конец первого файла содержимое второго файла.

Даны два текстовых файла. Добавить в конец первого файла содержимое второго файла
Даны два текстовых файла. Добавить в конец первого файла содержимое второго файла.

Добавить в конец первого файла содержимое второго файла
Даны два текстовых файла. Добавить в конец первого файла содержимое второго файла.


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
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 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru