Вопрос № 45924: Здравствуйте. Проясните момент: Когда создается окно, заполняются поля структуры WNDCLASS. Там есть два пункта cbClsExstra и cbWndExstra. В литературе как-то туманно объясняется, что это какие-то дополнительные байты которые как-то там надо распреде...Вопрос № 45929: Здравствуйте, уважаемые эксперты!
Имеется файл (текстовый), в котором расположены цифры, расположенные примерно следующим образом:
3 5
7 1
6 8
13 2 и т.д.
Каким образом можно каждую эту цифру (разделенные пробелами и символами...Вопрос № 45962: Вопрос :
Почему после выполнения вот таких действий:
#include "stdafx.h"
#include <stdio.h>
void main(void)
{
FILE *stream;
int b;
stream = fopen("install.exe","w+");
fs...
Вопрос № 45.924
Здравствуйте. Проясните момент: Когда создается окно, заполняются поля структуры WNDCLASS. Там есть два пункта cbClsExstra и cbWndExstra. В литературе как-то туманно объясняется, что это какие-то дополнительные байты которые как-то там надо распределять. Объясните пожалуйста как это применять. Спасибо заранее.
Отправлен: 11.06.2006, 19:44
Вопрос задал: Lameruga (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: gitter
Здравствуйте, Lameruga!
cbClsExtra указывает количество дополнительных (т.е. в дополнение к sizeof(WNDCLASSEX)) байт, следующих за экземпляром структуры WNDCLASSEX. Когда структура, описывающая класс окна, копируется, надо копировать и эти байты. Доступ к этой дополнительной памяти можно получить с помощью функций SetClassLong/GetClassLong и SetClassLongPtr/GetClassLongPtr.
cbWndExtra указывает количество дополнительных байт, связанных с каждым экземпляром окна указанного класса. Т.е. когда создается окно этого класса, для него дополнительно выделяется cbWndExtra байт. Доступ к этой памяти можно получить с помощью функций SetWindowLong/GetWindowLong и SetWindowLongPtr/GetWindowLongPtr.
Взято здесь http://www.npksv.ru/soft/cp/faq/index5.shtml
Удачи!
Ответ отправил: gitter (статус: 5-ый класс)
Ответ отправлен: 11.06.2006, 20:35 Оценка за ответ: 5 Комментарий оценки: Спасибо, все понятно.
Вопрос № 45.929
Здравствуйте, уважаемые эксперты!
Имеется файл (текстовый), в котором расположены цифры, расположенные примерно следующим образом:
3 5
7 1
6 8
13 2 и т.д.
Каким образом можно каждую эту цифру (разделенные пробелами и символами конца строки) считать в отдельные элементы массива? Пробовал fgets и fscanf, но смог добиться нужного эффекта. Хотябы подскажите, как считывать данные из файла по строкам? Например, считать первую строку, затем вторую и т.д. Если можно, приведите кусок кода с примером.
Заранее спасибо!
З.Ы. Пишу на турбо си в окнах.
Отправлен: 11.06.2006, 20:24
Вопрос задал: Велислав (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
int index=0;//вычитываемый номер строки
while (!feof(f))
{
//читаем первый элемент строки
fscanf(f,"%d",&a[0][index]);
//читаем второй элемент строки
fscanf(f,"%d",&a[1][index]);
//печатаем вычитанные из файла данные
printf("%d %d
",a[0][index],a[1][index]);
//переходим к следующей строке
index=index+1;
}
fclose(f);
}
int main()
{
CreateDataFile();
PrintData();
return 0;
}
Я надеюсь, это то что Вам нужно.
Удачи!
Ответ отправил: gitter (статус: 5-ый класс)
Ответ отправлен: 11.06.2006, 20:58
Отвечает: DeVampir
Здравствуйте, Велислав!
функция fgets (s, n, f) - считывает из файла f строку длиной n-1 символов (или до конца строки, если длина меньше n-1) в переменную s
--------- Нам будет трудно - это терпимо! (с) М. Горшенев
Ответ отправил: DeVampir (статус: 1-ый класс)
Ответ отправлен: 11.06.2006, 21:57
Вопрос № 45.962
Вопрос :
Почему после выполнения вот таких действий:
#include "stdafx.h"
#include <stdio.h>
В файле стирается вообще всё кроме этих байт =) ???
Мне нужно поправить байты а не стирать весь файл =)
Как это cделать ?
А то я в C++ и C только начал учить на Delphi это было полегче =)
И как читать байты из файла ?
Мы просто с парнями программку пишем для вытаскивания wav файлов из игровых архивов на Delphi она уже написана но нужно на C++ !
Помогите очень нужно !
Отвечает: X-MAN
Здравствуйте, Tamashev Denis M!
Вынужден вас огорчить! Так как вы хотите сделать, сделать нельзя. Нельзя именять содержимое уже созданного файла. Его можно только очистить или дописывать в конец. Если вы хотите изменить содержимое, сначала скопируйте его в память(например в массив char[]), измените, а затем запишите обратно в файл.
А для чтения есть можество функций: fgetc, fgets, fscanf, класс fstream и т.д.
--------- Оптимисты начинают день с имунеле, реалисты - с кофе, а пессимисты - с водки!
Ответ отправил: X-MAN (статус: 6-ой класс)
Ответ отправлен: 12.06.2006, 06:59 Оценка за ответ: 4 Комментарий оценки: Извините но я должен вас огорчить ! Я нашёл способ для которого ненужно ничего читать ! И всё у меня получилось ! Прежде чем утверждать проверьте свои убеждения . Чтоб доказать что у меня всё получилось я скину Код смотрите:
Отвечает: DeVampir
Здравствуйте, Tamashev Denis M!
Попробуйте включить режим побитовой обработки (wb+), используйте беззнаковый тип. В приложении программа, которая заполняет файл n случайными числами, а потом сортирует его.
Приложение:
--------- Нам будет трудно - это терпимо! (с) М. Горшенев
Ответ отправил: DeVampir (статус: 1-ый класс)
Ответ отправлен: 12.06.2006, 09:46 Оценка за ответ: 4 Комментарий оценки: Слушай какой ужас ! Я только начал учить C++ ! Я ешё неочень в терминах ! Но всё равно спасибо ! Кстати на мини форуме посмотри я скинул код он намного короче и работо способный !