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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.02.2016, 12:14   #11
oxana.pal
Пользователь
 
Регистрация: 23.02.2016
Сообщений: 23
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Ну не "так же", а аналогично. Вместо cout в созданный ofstream писать.
а нет, я поняла что аналогично)) я так думаю нужно, но не знаю правильно ли
Код:
void Board::Save(Board board) const
{	
	std::ofstream save;
	save.open("D:\\board.txt");
		
	for (int row = 0; row < kSize; ++row)
	{
		for (int col = 0; col < kSize; ++col)
		{
			if (mCells[row][col] == State_Free)
				save << '0';
			else if (mCells[row][col] == State_Player)
				save << '1';
			else if (mCells[row][col] == State_Finish)
				save << '9';
			else if (mCells[row][col] == State_Trap)
				save << '*';
			else if (mCells[row][col] == State_Monster)
				save << '!';
			
			std::cout << ' ';
		}
		std::cout << "\n";
	}
	save.close();
}

Последний раз редактировалось oxana.pal; 24.02.2016 в 12:22.
oxana.pal вне форума Ответить с цитированием
Старый 24.02.2016, 12:38   #12
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну чтобы узнать правильно или нет надо определиться с желаемым результатом и проверить соответствует ли полученный результат ему.

И еще иногда создание файла завершается неудачей (например если нет прав или файл уже открыт и занят), поэтому после open надо проверять is_open http://en.cppreference.com/w/cpp/io/...stream/is_open (или использовать http://en.cppreference.com/w/cpp/io/...ios/exceptions чтоб оно кидало exception) и действовать соответственно (выводить ошибку в консоль/лог, бросать Exception и т.д. в зависимости от цели).
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 24.02.2016 в 12:44.
Alex11223 вне форума Ответить с цитированием
Старый 24.02.2016, 13:09   #13
oxana.pal
Пользователь
 
Регистрация: 23.02.2016
Сообщений: 23
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Ну чтобы узнать правильно или нет надо определиться с желаемым результатом и проверить соответствует ли полученный результат ему.

И еще иногда создание файла завершается неудачей (например если нет прав или файл уже открыт и занят), поэтому после open надо проверять is_open http://en.cppreference.com/w/cpp/io/...stream/is_open (или использовать http://en.cppreference.com/w/cpp/io/...ios/exceptions чтоб оно кидало exception) и действовать соответственно (выводить ошибку в консоль/лог, бросать Exception и т.д. в зависимости от цели).
Еще вопрос, а как мне в меине вызывать мою функцию?
Save(board) ? Если нужен весь код програмі, я выложу
Код:
void Board::Save(Board board) const
{	
	std::ofstream save;
	save.open("D:\\board.txt");
	if (save.is_open())
	{

		for (int row = 0; row < kSize; ++row)
		{
			for (int col = 0; col < kSize; ++col)
			{
				if (mCells[row][col] == State_Free)
					save << '0';
				else if (mCells[row][col] == State_Player)
					save << '1';
				else if (mCells[row][col] == State_Finish)
					save << '9';
				else if (mCells[row][col] == State_Trap)
					save << '*';
				else if (mCells[row][col] == State_Monster)
					save << '!';

				std::cout << ' ';
			}
			std::cout << "\n";
		}
		save.close();
	}
}
А вставку по аналогии делать? Но там уже нужно в строку наоборот вставлять

Последний раз редактировалось oxana.pal; 24.02.2016 в 13:13.
oxana.pal вне форума Ответить с цитированием
Старый 24.02.2016, 13:15   #14
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Убрать параметр (который вы все равно не используете) и вызывать этот метод у экземпляра Board (myBoard.save()).
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 24.02.2016, 13:16   #15
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
Еще вопрос, а как мне в меине вызывать мою функцию?
Раз это функция член класса и не статическая, то создаете объект и вызываете.
p51x вне форума Ответить с цитированием
Старый 24.02.2016, 13:20   #16
oxana.pal
Пользователь
 
Регистрация: 23.02.2016
Сообщений: 23
По умолчанию

А можно так load делать?
Код:
void Board::Load() const
{
	std::ifstream save;
	save.open("D:\\board.txt");
	if (save.is_open())
	{
		for (int row = 0; row < kSize; ++row)
		{
			for (int col = 0; col < kSize; ++col)
			{
				if (mCells[row][col] == State_Free)
					save >> '0';
				else if (mCells[row][col] == State_Player)
					save >> '1';
				else if (mCells[row][col] == State_Finish)
					save >> '9';
				else if (mCells[row][col] == State_Trap)
					save >> '*';
				else if (mCells[row][col] == State_Monster)
					save >> '!';

				std::cout << ' ';
			}
			std::cout << "\n";
		}
		save.close();
	}
}

Последний раз редактировалось oxana.pal; 24.02.2016 в 13:36.
oxana.pal вне форума Ответить с цитированием
Старый 24.02.2016, 13:21   #17
oxana.pal
Пользователь
 
Регистрация: 23.02.2016
Сообщений: 23
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Убрать параметр (который вы все равно не используете) и вызывать этот метод у экземпляра Board (myBoard.save()).
спасибо
oxana.pal вне форума Ответить с цитированием
Старый 24.02.2016, 14:20   #18
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
А можно так load делать?
Если только не прям так. Например,
Код:
save >> '0'
Что вы собрались запихнуть в символ 0?
p51x вне форума Ответить с цитированием
Старый 24.02.2016, 14:50   #19
oxana.pal
Пользователь
 
Регистрация: 23.02.2016
Сообщений: 23
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Если только не прям так. Например,
Код:
save >> '0'
Что вы собрались запихнуть в символ 0?
мне наоборот нужно записать мою матрицу . Можете пример навести как правильно это делать, А то я по ссылкам которые мне дали не могу понять(
oxana.pal вне форума Ответить с цитированием
Старый 24.02.2016, 14:59   #20
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Ну так и записывайте в матрицу, а не в 0
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA Вставить формат ячеек. Zzema Microsoft Office Excel 1 30.09.2013 13:49
Сохранить адрес ячеек, которые редактировали JulyMar Microsoft Office Excel 1 01.08.2013 21:41
Процентное соотношение ячеек одного содержания по отношению ко всем ячейкам tibhar940 Microsoft Office Excel 5 23.11.2012 14:01
Поиск содержания ячеек, удовлетворяющих диапазону и выгрузка строк или удаление лишних. tibhar940 Microsoft Office Excel 26 07.08.2012 12:33
Вставить и удалить значения, в диапазоне ячеек. segail Microsoft Office Excel 9 02.07.2010 11:20