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

Запись в файл с заменой - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перемножение двоичных чисел http://www.cyberforum.ru/cpp-beginners/thread1207102.html
Добрый день!:) Возникла проблема при написании калькулятора для двоичных чисел, точнее, проблемы с умножением. Логику сего процесса вроде понимаю, но написать тяжеловато. Походу совсем блондинка:) Есть фрагмент кода: { if (l > l1) //определяем длину по наибольшему числу length = l; else
C++ Подсчет количества слов в файле Дан текстовый файл. Определить, сколько раз каждое слово встречается в тексте. Слова выводить на экран в алфавитном порядке по 20 слов. http://www.cyberforum.ru/cpp-beginners/thread1207095.html
Операторы эквивалентные оператору присваивания\условному оператору? C++
Здравствуйте уважаемые форумчане) Есть два задания, в которых я не могу понять даже смысла, будьте добры, может кто знает в чем соль?) Записать условный оператор, который эквивалентен оператору присваивания и в котором не используются логические операции: X=A||B&&C; где все переменные - логического типа. Записать оператор присваивания, эквивалентный условному оператору: if(a>b) x=b;...
C++ Реализация шифрования алгоритмом AES
Есть ли у кого-то реализация шифрования данным методом? Коли есть, поделитесь пожалуйста.
C++ Что выведет следующий фрагмент программы и почему? http://www.cyberforum.ru/cpp-beginners/thread1207077.html
double a = 0.3, b = 5.1; if (5.4 == a + b) cout « "равно"; else cout « "не равно"; При компиляции выводит не равно, почему?
C++ Как удалить объект, который это попросил? Сам вопрос возник, когда работал с Qt и их системой signal/slot. Проблема на С++ выглядела бы так: Есть два объекта: А(асинхронный) и О(ожидающий). struct O { A *a; int downloadsAmount; MainObject *parent; void run() // Этот метод запускается в отдельном потоке. После его окончания, поток завершается { подробнее

Показать сообщение отдельно
Vashtanerada
1 / 1 / 0
Регистрация: 29.11.2012
Сообщений: 142
13.06.2014, 20:30     Запись в файл с заменой
Здравствуйте, уважаемые форумчане!!!
У меня к вам вот какой вопрос:
Есть программа записи данных в файл, нужно написать программу для замены записи на другую.
Вот текст основной программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int main()
{
        setlocale(0,"rus");
 
    // Замена записей
    cout<<"<Запись с заменой>"<<endl;
    cout<<"Заменяем запись с полем 'Николай' на 'Наталья'"<<endl;
    worker s5("Николай","Программист",16);
    massiv ma4(10);
    massiv r(20);
    r.relBD("Николай",ma4,s5,"../worker.txt");
    return 0;
}
где relBD - функция замены записи:
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
void massiv::relBD(string srch, massiv& s, worker& x, string file)
    {
        int dl=find(srch, file);
        worker *c;
        int d=0;
        ifstream input("../worker.txt",ios::out);
        if(!input) cout<<"Файла не существует!"<<endl;
        else
        {
            int i=0;
            do
            {
                string age;
                string ii;
                int rr;
                input>>age;
                input>>ii;
                input>>rr;
                c=new worker(age, ii, rr);
                s.add(c);
                d++;
            }while(!input.eof());
            input.close();
 
            s.saveRelBD(dl,x,file);
 
        }
    }
здесь saveRelBD записывает данные в файл
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void massiv::saveRelBD(int dl, worker& x, string file)
    {
        cout<<"Запись файла с заменой"<<endl;
        ofstream output ("../worker.txt",ios::trunc); //Очищаем файл
        output.close();
        for(int i=0;i<length;i++)
        {
            if (i!=dl)
            {
                data[i]->save(file);
            }
            else
            {
                x.save(file);
            }
        }
    }
Функция find работает, и на экране выдает номер строки, которую нужно заменить, и заходит в функцию saveRelBD, но в файле дынные не изменяются.
Помогите разобраться в чем проблема.

Добавлено через 5 часов 4 минуты
Ошибка исправлена, спасибо за внимание
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru