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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2012, 01:37   #1
riko782
Пользователь
 
Регистрация: 17.03.2012
Сообщений: 40
Вопрос MessageBox, запись массива чисел в файл

Код:
int mas[] = {48, 49, 50, 51, 52, 53, 54 ,55, 56, 57};
for (int i = 0; i < 10; ++i){
    DWORD dwBytesWrite;
        if(!WriteFile(
            hFile,               
            &mas[i],                  
            sizeof(i),           
            &dwBytesWrite,       
            (LPOVERLAPPED)NULL   
        )){    
            MessageBox::Show( "Couldn't write information into File A.", "Write information into file",
                       MessageBoxButtons::OK, MessageBoxIcon::Exclamation );    
            break;
          }    
     else {
            MessageBox::Show( "Information has been write into File A.", "Write information into file",
                       MessageBoxButtons::OK, MessageBoxIcon::Information );
            break;
          }
}
При записи брейков, в файл пишет только 0 (т.е. первое число массива), если же их убрать то нужно будет 10 раз нажимать на всплывающем окне ОК... Подскажите, пожалуйста, выход из ситуации.
riko782 вне форума Ответить с цитированием
Старый 17.04.2012, 13:19   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

1. break прерывает цикл
2. WriteFile может записать массив весь сразу а не по элементно
Код:
WriteFile(
            hFile,               
            &mas,                  
            sizeof(mas[i])*10,           
            &dwBytesWrite,       
            (LPOVERLAPPED)NULL   
        )
counter вне форума Ответить с цитированием
Старый 17.04.2012, 18:31   #3
riko782
Пользователь
 
Регистрация: 17.03.2012
Сообщений: 40
По умолчанию

Спасибо за ответ! Рабочая версия:
Код:
if(!WriteFile(
			hFile,               
			&mas,                  
			sizeof(*mas)*10,          
			&dwBytesWrite,       
			(LPOVERLAPPED)NULL   
		))
		{    
			MessageBox::Show( "Couldn't write information into File A.", "Write information into file",
				MessageBoxButtons::OK, MessageBoxIcon::Exclamation );	
    	}	
		else{
			MessageBox::Show( "Information has been write into File A.", "Write information into file",
				MessageBoxButtons::OK, MessageBoxIcon::Information );
		}
riko782 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись массива в файл WIN32APIist Общие вопросы C/C++ 5 03.01.2011 01:38
Запись чисел из одного массива в 2 других(в зависимости от парности) chester20 Помощь студентам 0 04.03.2010 15:23
запись массива в файл lel-lis Общие вопросы C/C++ 6 25.01.2010 17:46
запись массива в файл Владимир1988 Помощь студентам 3 19.01.2010 09:25
ввод, запись массива чисел в файл Sairut Помощь студентам 1 11.12.2007 23:19