ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

17.05.2009, 17:52
|
|
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме: 2868783
Репутация:
414
|
|
Если под винду подойдет winforms.Создавай в студии проект Windows Form Applications
не пойдет, ибо winforms это либса не под с++ а под managed c++
по сабжу юзай qt, mfc, wtl, etc.
|
|
|

17.05.2009, 18:55
|
|
Участник форума
Регистрация: 08.02.2008
Сообщений: 116
Провел на форуме: 1608432
Репутация:
158
|
|
как прочитать значение из текстбокса, выполнить над ним какуюнить операцию и вывести результат в лейбл, если можно то дайте самы простой исходник
|
|
|

17.05.2009, 19:07
|
|
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме: 18127311
Репутация:
1676
|
|
как прочитать значение из текстбокса, выполнить над ним какуюнить операцию и вывести результат в лейбл, если можно то дайте самы простой исходник
Своего или чужого? В какой среде?
|
|
|

17.05.2009, 19:11
|
|
Участник форума
Регистрация: 08.02.2008
Сообщений: 116
Провел на форуме: 1608432
Репутация:
158
|
|
Сообщение от Kaimi
Своего или чужого? В какой среде?
короче есть код (консоль) нужно сделать граф. интерфейс. VS 2008. если есть то плиз пример, а есче лучше пример на основе этого кода
Код:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i;
char buffer[500];
printf("Enter a number: ");
scanf("%o", &i);
itoa(i,buffer,10);
printf("decimal: %s\n", buffer);
itoa(i,buffer,16);
printf("hexadecimal: %s\n", buffer);
itoa(i, buffer, 2);
printf("binary: %s\n", buffer);
return 0;
}
т.е. для начала нужно заменить вот это:
Код:
printf("Enter a number: ");
scanf("%o", &i);
но тут уже нужно взять то что написано в текстбоксе и дальше выполнять действия, вопрос, как это сделать ?
Последний раз редактировалось s_p_a_m; 17.05.2009 в 19:18..
|
|
|

17.05.2009, 21:28
|
|
Познающий
Регистрация: 23.01.2009
Сообщений: 32
Провел на форуме: 96906
Репутация:
8
|
|
Всем привет!
Недавно начал изучать C++, возник такой вопрос:
#include <iostream>
#include <windows.h>
using namespace std;
int main(){
char *szMess = new char;
szMess = "Hello World!";
cout << szMess;
Sleep(3000);
return 0;
}
Как это возможно? Я так понимаю здесь объявляется указатель szMess на переменную типа char и определяется адресом выделенным под переменную char (new char). Ну это ладно....но как потом он проглотил присваивание указателю строки символов, дык еще и вывел их оператором cout << szMess;
Я наверное чет не так понимаю, но мне кажется должно быть так
char *szMess = new char;
*szMess = "Hello World!";
cout << *szMess;
Но на такую запись он ругается! Объясните новичку че к чему. Заранее спасибо.
Последний раз редактировалось kRa$I-I; 17.05.2009 в 21:31..
|
|
|

17.05.2009, 21:35
|
|
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме: 18127311
Репутация:
1676
|
|
Я наверное чет не так понимаю, но мне кажется должно быть так
char *szMess = new char;
*szMess = "Hello World!";
cout << *szMess;
Код:
char *szMess = new char; //нормально, делаем указатель
*szMess = "Hello World!"; //тут этот укзаатель начинает указывать на область памяти по адресу "Hell", т.к. указатель - это DWORD=4 байта. Видимо, мы хотим достать демонов из ада
cout << *szMess; //а вот тут-то и ошибка. чтобы достать демона, надо * убрать. Тогда мы призовем всех демонов до первого встретившегося люцифера (нулевого байта)
//Хотя может ты просто хочешь спалить местоположение врат ада
|
|
|

17.05.2009, 22:52
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
Сообщение от kRa$I-I
Всем привет!
Код:
char *szMess = new char;
szMess = "Hello World!";
cout << szMess;
Код:
char *szMess = new char;
*szMess = "Hello World!";
cout << *szMess;
итак. вариант номер один. эквивалентен записи
Код:
cout << "Hello World!";
ибо ты выделяешь только 1 байт, что явно не достаточно для строки длиной 13 байт. ты благополучно затираешь выделенный указатель указателем строки хелловорлд, тем самым создавая утечку памяти. по сути ты просто выводишь используя указатель на хуллоуворлд.
вариант два. опять мало байтов. выделен только один. сделав * ты получил доступ к байту, но пытаешься запихнуть туда строку. правильный вариант этой строки *szMess="Hello World!"[0]; Но это опять же не верно, если ты хочешь засунуть туда строку
Правильный вариант
Код:
#define HELLO_MSG "Hello World!"
int main()
{
char *szMess;
szMess= new char [strlen(HELLO_MSG) + 1];
strcpy(szMess, HELLO_MSG);
cout << szMess;
return 1;
}
|
|
|

18.05.2009, 08:17
|
|
Познающий
Регистрация: 23.01.2009
Сообщений: 32
Провел на форуме: 96906
Репутация:
8
|
|
to Kaimi Спасиб....я все понял....просто такой некорректный пример видел в одной статье... после Object Pascal совсем мозг не хочет принимать такие ньюансы работы с памятью.....я уж привык, что string это строка и пиши туда че хочешь и сколько влезет.
to Fatal1ex спасиб за перевод конечно но символ взятия адреса & , а *-разименовывание.
to Ra$kal Очень подробный содержательный ответ спасибо.
И все таки как взять строку из textBox если заранее ее длина неизвестна?
И вообще кто-нибудь может объяснить мне разницу между System::String ^ , string(из инклуда <string.h>) char * и char! Это меня уже 3 день в ступор вводит....
И че это за оператор подозрительный ^; не нравится он мне 
Последний раз редактировалось kRa$I-I; 18.05.2009 в 10:40..
|
|
|

18.05.2009, 09:44
|
|
Новичок
Регистрация: 27.09.2008
Сообщений: 15
Провел на форуме: 103874
Репутация:
20
|
|
Сообщение от razb
не пойдет, ибо winforms это либса не под с++ а под managed c++
по сабжу юзай qt, mfc, wtl, etc.
Чем конкретно для его задачи не подходит managed c++?
|
|
|

18.05.2009, 16:29
|
|
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме: 2868783
Репутация:
414
|
|
Чем конкретно для его задачи не подходит managed c++?
Да для его задачи подойдет почти любой язык, но дело не в этом. Я считаю что не стоит сразу привязываться к определенному фреймворку и к бесперспективной надстройке над с++. Лучше будет сначала выучить нативный синтаксис языка + средства сторонних библиотек. Вообще лучше уж сразу писать на C# чем на managed c++.
И все таки как взять строку из textBox если заранее ее длина неизвестна?
В с++ не красиво юзать char* строки, уже лучше воспользоваться STL классом string
И вообще кто-нибудь может объяснить мне разницу между System::String ^ , string(из инклуда <string.h>) char * и char! Это меня уже 3 день в ступор вводит....
И че это за оператор подозрительный ^; не нравится он мне
System::String это класс с .Net'a, а не нативный, как я указал выше используй std string который входит в стандартную библиотеку и являеться кроссплатформенным классом.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|