Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме 15-35 тыс рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2013, 12:05   #1
Dima-War
Форумчанин
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию код, который должен открывать файл, находить в нем определенный символ и заменять его на другой, не записывает в файл

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

Код:
#include <iostream>
#include <fstream>
#include <Windows.h>

using namespace std;

int main()
{
	SetConsoleCP(1251);
	SetConsoleOutputCP(1251);
	char buf[1024];
	char name[64];
	char oldSymb, newSymb;
	int ctr = 0;
	cout << "Введите название файла: ";
	cin.get(name, 64);
	cout << "Введите символ, который надо заменить: ";
	cin >> oldSymb;
	cout << "Введите символ, которым нужно заменить: ";
	cin >> newSymb;
	fstream file(name, ios::binary | ios::in | ios::out);
	if (!file)
	{
		cout << "Ошибка во время открытия файла. " << endl;
		system("pause");
		return 1;
	}
	file.read((char *) &buf, sizeof(buf));
	for (int i = 0; i < file.gcount(); i++) //вывожу содержимое начального файла на экран для проверки
	{
		cout << buf[i];
	}
	for (int i = 0; i < file.gcount(); i++) //заменяю символы
	{
		if (buf[i] == oldSymb)
		{
			buf[i] = newSymb;
		}
	}
	cout << endl;
	for (int i = 0; i < file.gcount(); i++) //вывожу содержимое нового файла на экран для проверки
	{
		cout << buf[i];
	}
	file.write((char *) &buf, sizeof(buf));
	file.close();
	system("pause");
	return 0;
}

Последний раз редактировалось Dima-War; 14.12.2013 в 12:08.
Dima-War вне форума Ответить с цитированием
Старый 14.12.2013, 13:25   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,803
По умолчанию

Код:
file.seekp(0,ios_base::beg);
file.write((char *) &buf, sizeof(buf));
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.12.2013, 21:35   #3
Dima-War
Форумчанин
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию

Что то не получается.. В файл все равно не перезаписывается..
Dima-War вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сохранить текстовый файл, который загружен в мемо поле (загрузка файла- есть код) Делфи 7 программирование Помощь студентам 5 22.11.2013 07:17
Есть файл, в нем словосочетания в столбец, нужно к каждому словосочетанию добавить символ. Как это сделать? antoha487 Помощь студентам 7 15.06.2012 21:58
Дан файл f, который содержит вещественные числа. Найти сумму чисел и записать результат в новый файл. (Delphi) 2Nboy Помощь студентам 1 08.06.2012 17:01
прочитать произвольные данные из стандартного ввода и записывает его в файл Bags Общие вопросы C/C++ 8 20.04.2012 23:55
Исправить код , который записывает реквизиты заполненого документа в реестр ХочуЗнать Microsoft Office Excel 0 03.12.2009 21:30