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

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

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

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

14.04.2010, 14:03. Просмотров 737. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2010, 14:03     Добавить в конец первого файла содержимое второго
Посмотрите здесь:

C++ Добавить в конец первого файла содержимое второго файла
Записать в третий файл только те пары чисел, в которых число из первого файла меньше соответствующего числа из второго файла. C++
C++ Сформировать два текстовых файла из целых чисел. Записать в третий файл минимальный элемент первого файла и максимальный элемент второго файла
Из одного файла скопировать в другой не удаляя содержимое второго и вывести на экран C++
C++ Получить третий файл, содержащий чётные строки первого файла и нечётные строки второго файла
Сформировать два файла из некоторых чисел. Записать в третий файл положительные элементы второго файла и отрицательные элементы первого C++
C++ Выходной поток первого числа, второго , суммы первого и второго чисел
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
5764 / 3413 / 255
Регистрация: 08.02.2010
Сообщений: 7,429
14.04.2010, 14:27     Добавить в конец первого файла содержимое второго #2
А тебе случаем не это надо?

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

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

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

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

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

Чтобы не было ошибок, нужно использовать программу полностью:
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;
}
Dareami
0 / 0 / 0
Регистрация: 03.03.2010
Сообщений: 18
14.04.2010, 14:59  [ТС]     Добавить в конец первого файла содержимое второго #9
Цитата Сообщение от Nameless One Посмотреть сообщение
А у меня все работает.
Если ты добавляешь эту строку в СВОЮ программу, то ошибки у тебя будут точно.

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

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

Добавлено через 4 минуты
Nameless One, Спасибо тебе большое, я нашёл ошибки свои с твоей помощью!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2010, 15:20     Добавить в конец первого файла содержимое второго
Еще ссылки по теме:

Вывести на экран символы первого файла с позиций, указываемых числами из второго файла C++
Переписать содержимое файла А в файл В, перенося при этом в конец каждой строки все входящие в нее знаки препинания C++
C++ Дана строка S и текстовый файл. Добавить строку S в начало и конец файла
Записать в третий файл через один содержимое первого файла и второго C++
Как прочесть несколько слов из файла в динамический массив char и добавить новое значение в конец? C++

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

Или воспользуйтесь поиском по форуму:
Nameless One
Эксперт С++
5764 / 3413 / 255
Регистрация: 08.02.2010
Сообщений: 7,429
14.04.2010, 15:20     Добавить в конец первого файла содержимое второго #12
Всегда пожалуйста
Yandex
Объявления
14.04.2010, 15:20     Добавить в конец первого файла содержимое второго
Ответ Создать тему
Опции темы

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