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

sprintf_s оставляет мусор при записи, как бы я не колдовал - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Строки. В предложении найти все слова http://www.cyberforum.ru/cpp-beginners/thread904295.html
В предложении найти все слова, отличные от последнего. В каждом найденном слове удалить первую букву. Результат вывести на печать. очень нужна помощь...
C++ shared_ptr в классе Доброго времени суток. Вопрос по использованию shared_ptr, который описан следующим образом: template<class T> class auto_ptr{ T* m_pointer; int* m_count; public: // constructor auto_ptr(T* pointer=0):m_pointer(pointer){ m_count = (pointer)?new int(1):0; } //dereferencing object http://www.cyberforum.ru/cpp-beginners/thread904289.html
C++ Дана очередь на n элементов - вывести в порядке возрастание элементы, которые кратны 2,3,5
Задача: у нас есть очередь на n элементов (n - пишет пользователь) type = integer; нужно вывести в порядке возрастание элементы, которые кратны 2,3,5. Помогите пожалуста!!!
ostringstream out C++
Что означат "ostringstream out;" ? и "out<<ans;" ?
C++ Вводится число от 1 до 15. Вывести данное число, записанное римскими цифрами http://www.cyberforum.ru/cpp-beginners/thread904245.html
Вводится число от 1 до 15. Вывести данное число, записанное римскими цифрами (I, II, III, IV, V, VI, …., XV);С++ плииииз!
C++ чтобы каждое слово начиналось с большой буквы Дано предложение на латинском языке.Превратить строку так, чтобы каждое слово начиналось с большой буквы подробнее

Показать сообщение отдельно
MadRabbit
0 / 0 / 0
Регистрация: 07.08.2011
Сообщений: 53

sprintf_s оставляет мусор при записи, как бы я не колдовал - C++

17.06.2013, 14:26. Просмотров 904. Ответов 14
Метки (Все метки)

В общем, проблема простая. Делаю настройки для своей программы, дошел до момента автоопределения настроек и записи их в файл. Проблема вот в чем, чтобы записать разрешение экрана в файл, я использовал sprintf_s (с простым sprintf компилятор не дает) и WriteFile. Как бы я не колдовал, после последнего символа, через пробел выкидывает мусор:

SCREEN_SIZE_X=1920
SCREEN_SIZE_Y=1058 юююююююююююююююююююююююююю

Более того, жалуется на ошибку доступа к записи в файл (в 0x000000), и крашит приложение. Я тут уже наколдовал лишнего, так что особо не обращайте внимания, но вроде я все перепробовал.

Код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
short SCREEN_SIZE_X = NULL;
    short SCREEN_SIZE_Y = NULL;
 
    HANDLE hFile;
    if (INVALID_HANDLE_VALUE==(hFile=CreateFile(L"Settings.ini",GENERIC_READ, FILE_SHARE_READ,NULL, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL)))
{
    CloseHandle(hFile);
    SCREEN_SIZE_X = GetSystemMetrics(16);
    SCREEN_SIZE_Y = GetSystemMetrics(17);
    char buf[124] = {NULL};
    sprintf_s(buf,"SCREEN_SIZE_X=%d\r\nSCREEN_SIZE_Y=%d",SCREEN_SIZE_X,SCREEN_SIZE_Y);
    hFile=CreateFile(L"Settings.ini",GENERIC_WRITE, FILE_SHARE_WRITE,NULL, CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL);
    WriteFile(hFile,buf, sizeof(buf),NULL,NULL);
    CloseHandle(hFile);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru