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

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

14.04.2010, 14:03. Просмотров 1585. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.04.2010, 14:03
Ответы с готовыми решениями:

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

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

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

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

11
Эксперт С++
5813 / 3464 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
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){
1
0 / 0 / 0
Регистрация: 03.03.2010
Сообщений: 18
14.04.2010, 14:31  [ТС] 3
Оо, судя по заданию это!)

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

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

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

хм, а где это?
из второго в первый надо! Не вижу строку
0
Эксперт С++
5813 / 3464 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
14.04.2010, 14:49 6
Пусть второй файл - это файл "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  [ТС] 7
извини я не программист, но при добавлении этой строки море ошибок!
0
Эксперт С++
5813 / 3464 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
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;
}
1
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)
как раз мы не учили, перед преподавателем я не смогу отмазаться никак...)
Мы так как раз и не пишем честно говоря..
0
Эксперт С++
5813 / 3464 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
14.04.2010, 15:04 10
Мы так как раз и не пишем честно говоря
Тогда и мой пример ты использовать не можешь, так как он основан на файловых потоках С++, а не на файлах С, как у тебя.

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

Добавлено через 4 минуты
Nameless One, Спасибо тебе большое, я нашёл ошибки свои с твоей помощью!
0
Эксперт С++
5813 / 3464 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
14.04.2010, 15:20 12
Всегда пожалуйста
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.04.2010, 15:20

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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

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

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

Даны два текстовых файла. Добавить в конец каждой строки первого файла соответствующую строку второго файла
Нужна помощь с самим модулем,с загрузкой и сохранением файлов все в принципе понятно.

В конец первого файла добавить первую строчку второго файла
Есть два текстовых файла, нужно до конца первого файла добавить 1-ю строчку с второго файла, создав...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

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