HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #2981  
Старый 17.05.2009, 17:52
razb
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме:
2868783

Репутация: 414


Отправить сообщение для razb с помощью ICQ
По умолчанию

Цитата:
Если под винду подойдет winforms.Создавай в студии проект Windows Form Applications
не пойдет, ибо winforms это либса не под с++ а под managed c++
по сабжу юзай qt, mfc, wtl, etc.
 
Ответить с цитированием

  #2982  
Старый 17.05.2009, 18:55
s_p_a_m
Участник форума
Регистрация: 08.02.2008
Сообщений: 116
Провел на форуме:
1608432

Репутация: 158
По умолчанию

как прочитать значение из текстбокса, выполнить над ним какуюнить операцию и вывести результат в лейбл, если можно то дайте самы простой исходник
 
Ответить с цитированием

  #2983  
Старый 17.05.2009, 19:07
Kaimi
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме:
18127311

Репутация: 1676


Отправить сообщение для Kaimi с помощью ICQ
По умолчанию

Цитата:
как прочитать значение из текстбокса, выполнить над ним какуюнить операцию и вывести результат в лейбл, если можно то дайте самы простой исходник
Своего или чужого? В какой среде?
 
Ответить с цитированием

  #2984  
Старый 17.05.2009, 19:11
s_p_a_m
Участник форума
Регистрация: 08.02.2008
Сообщений: 116
Провел на форуме:
1608432

Репутация: 158
Smile

Цитата:
Сообщение от 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..
 
Ответить с цитированием

  #2985  
Старый 17.05.2009, 21:28
kRa$I-I
Познающий
Регистрация: 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..
 
Ответить с цитированием

  #2986  
Старый 17.05.2009, 21:35
Kaimi
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме:
18127311

Репутация: 1676


Отправить сообщение для Kaimi с помощью ICQ
По умолчанию

Цитата:
Я наверное чет не так понимаю, но мне кажется должно быть так

char *szMess = new char;
*szMess = "Hello World!";
cout << *szMess;
Код:
char *szMess = new char; //нормально, делаем указатель
*szMess = "Hello World!"; //тут этот укзаатель начинает указывать на область памяти по адресу "Hell", т.к. указатель - это DWORD=4 байта. Видимо, мы хотим достать демонов из ада
cout << *szMess; //а вот тут-то и ошибка. чтобы достать демона, надо * убрать. Тогда мы призовем всех демонов до первого встретившегося люцифера (нулевого байта)
//Хотя может ты просто хочешь спалить местоположение врат ада
 
Ответить с цитированием

  #2987  
Старый 17.05.2009, 22:52
Ra$cal
Постоянный
Регистрация: 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;
}
 
Ответить с цитированием

  #2988  
Старый 18.05.2009, 08:17
kRa$I-I
Познающий
Регистрация: 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..
 
Ответить с цитированием

  #2989  
Старый 18.05.2009, 09:44
FoV
Новичок
Регистрация: 27.09.2008
Сообщений: 15
Провел на форуме:
103874

Репутация: 20
По умолчанию

Цитата:
Сообщение от razb  
не пойдет, ибо winforms это либса не под с++ а под managed c++
по сабжу юзай qt, mfc, wtl, etc.
Чем конкретно для его задачи не подходит managed c++?
 
Ответить с цитированием

  #2990  
Старый 18.05.2009, 16:29
razb
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме:
2868783

Репутация: 414


Отправить сообщение для razb с помощью ICQ
По умолчанию

Цитата:
Чем конкретно для его задачи не подходит managed c++?
Да для его задачи подойдет почти любой язык, но дело не в этом. Я считаю что не стоит сразу привязываться к определенному фреймворку и к бесперспективной надстройке над с++. Лучше будет сначала выучить нативный синтаксис языка + средства сторонних библиотек. Вообще лучше уж сразу писать на C# чем на managed c++.

Цитата:
И все таки как взять строку из textBox если заранее ее длина неизвестна?
В с++ не красиво юзать char* строки, уже лучше воспользоваться STL классом string

Цитата:
И вообще кто-нибудь может объяснить мне разницу между System::String ^ , string(из инклуда <string.h>) char * и char! Это меня уже 3 день в ступор вводит....
И че это за оператор подозрительный ^; не нравится он мне
System::String это класс с .Net'a, а не нативный, как я указал выше используй std string который входит в стандартную библиотеку и являеться кроссплатформенным классом.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Сценарии/CMF/СMS 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ