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
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 18.05.2009, 19:11
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

Почитай сначала это
Не вижу смысла повторять то, что уже написано, и не раз написано. Про String^ забудь. Это не чистый с++. Помесь с++ и дотнета. Оно тебе все равно рано.
 
Ответить с цитированием

  #2  
Старый 18.05.2009, 20:14
kRa$I-I
Познающий
Регистрация: 23.01.2009
Сообщений: 32
Провел на форуме:
96906

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

Raskal ты зря думаешь что мне рано и я задаю вопросы потому, что жить скучно. У меня на компе самоучителей по С++ штук 8 валяется....один из них меня заинтересовал "освой С++ за 21 день" и я его читаю.....просто во всех книгах описываются перегруженные функции, операторы, типы данных и классы, как по шаблону....но нигде не написанна разница между массивами данных массивом данных заканчиваюшимся 0 и анси строкой заканчивающейся 0.....Просто после Object Pascal где был тип string такое изобилие строк в с++ мне непонятно......
И если так трудно ответить на такой простой вопрос, может вопрос не такой уж простой?
Я пытаюсь делать так:

private: System::Void bbConn_Click(System::Object^ sender, System::EventArgs^ e) {
String ^szAddr = "172.23.0.74";
SOCKET hSocket;
struct sockaddr_in server;
//Получаем IP servera
szAddr = textBox1->Text;
//Создаем сокет
hSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
//Заполняем структуру sockaddr_in
server.sin_family = AF_INET;
server.sin_port = htons(1313);
server.sin_addr.S_un.S_addr = inet_addr(szAddr);
iRet = connect(hSocket, server, sizeof(server));
}
А он говорит: error C2664: inet_addr: невозможно преобразовать параметр 1 из 'System::String ^' в 'const char *'
Я и пытаюсь разобратся в изобилии строк С++.....Раздел ведь для новичков....
 
Ответить с цитированием

  #3  
Старый 18.05.2009, 20:31
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

ну а зачем ты себе жизнь усложняешь, используя мэнэджед с++ ? разберись сначала с чистым с++ без всякого гуя. а ты пытаешься все и сразу освоить. char* - обычный массив символов, заканчивается на 0. но не обязательно. ибо в си как таковых строк не было. в си все массивы по сути байтовые, суй что хочешь. просто задание типа char подсказывает программисту, что это массив символов. но ты легко засунешь туда любые байты, которые не отражают никаких символов. а char* как раз растет из си. на деле этот тип данных используют очень редко. только при вызовах апи. ибо в виндос строки представляют из себя также терминированные нулем массивы байтов. но внутри своей программы ты можешь(и даже должен) использовать более адекватные типы. например класс std::string. по сути это просто оболочка для char*. по сути все классы строк - оболочки для char*. они управляют памятью, предоставляют сервисные методы типа toUpper, или перегруженные методы для сравнения и складывания строк. У всех есть метод получения указателя на строку. для того, чтобы как раз использовать эти классы с системными вызовами. дальше идет класс CString из atl или мфц. он весьма удобный, но не кроссплатформенный. у него метод получения строки GetBuffer(). у класса std::string метод получения указателя c_str(). так же операторы перегружены приведения типов, например LPCSTR. а вот использование мэнэджэд с++ приводит к проблемам, ибо по философии дотнет программисту не дается право управлять памятью напрямую. управление памятью лежит на совести вм дотнета. суть в том что мэнэджэд программы не должны вызывать апи и старые функции. потому что это нарушает философию. для этого в дотнете есть ОГРОМНОЕ количество классов, полностью повторяющих апи. именно поэтому учиться с++ с мэнэджэд плюсов мягко говоря глупо. ты учишь наполовину с++ наполовину дотнет, причем не понимаешь, в чем суть дотнета. хочешь делать окошки - используй мфц проекты с++.

Последний раз редактировалось Ra$cal; 18.05.2009 в 20:40..
 
Ответить с цитированием

  #4  
Старый 18.05.2009, 20:41
kRa$I-I
Познающий
Регистрация: 23.01.2009
Сообщений: 32
Провел на форуме:
96906

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

Внушительно.....спасибо...это достойный ответ который многое прояснил..... Держи ++
 
Ответить с цитированием

  #5  
Старый 18.05.2009, 20:44
kRa$I-I
Познающий
Регистрация: 23.01.2009
Сообщений: 32
Провел на форуме:
96906

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

Не не дает + ставить говорит:
Вы должны добавить репутацию кому-то еще, прежде чем сможете снова добавить ее Ra$cal.
 
Ответить с цитированием

  #6  
Старый 24.05.2009, 16:37
ysmat
Познающий
Регистрация: 20.04.2006
Сообщений: 67
Провел на форуме:
170762

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

не работает цикл поиска
задача найти в файле 1.bin байт E9
там он точно есть
однако цикл почему то работает безконечно
то есть прога просто виснет и все

Код:
#include <iostream>
#include <fstream>
using namespace std;

char buffer = 0;
int  counter = 0;
int  bufer0 = 0;
int  bufer1 = 0;
int  adres = 0;
const char filename1[] = "1.bin"   //имена файлов
const char filename2[] = "2.bin";


int main(void)
{                                                                                
fstream file1(filename1,ios::in);   //открываем файлы
fstream file2(filename2,ios::out);                                                                                     
file1.seekg(adres,ios::beg);        //начальная установка адреса чтения (0) чтение с начала файла
file2.seekp(adres,ios::beg);        //начальная установка адреса записи (0) запись с начала файла

 
 while(bufer0 != 233)               // цикл поиска байта 0xE9
 { 
 file1.seekg(adres);                // устанавливаем адрес   
 file1.read(&buffer,1);             // считываем содержимое по адресу в буфер 
 bufer0 = buffer;                   
 adres ++;                          // inc adres
 }                                  // зацикленно

                                    //закрыть файлы
file1.close();
file2.close();
return 0;
}
 
Ответить с цитированием

  #7  
Старый 20.05.2009, 10:17
Vados
Новичок
Регистрация: 04.05.2007
Сообщений: 10
Провел на форуме:
151190

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

Как сделать запрет ввода букв в TextBox в Visual Studio 2008 C++
 
Ответить с цитированием

  #8  
Старый 20.05.2009, 14:00
razb
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме:
2868783

Репутация: 414


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

Цитата:
Как сделать запрет ввода букв в TextBox в Visual Studio 2008 C++
поищи свойство ReadOnly или что то похожее)
 
Ответить с цитированием

  #9  
Старый 23.05.2009, 19:33
awdrg
Участник форума
Регистрация: 30.01.2009
Сообщений: 196
Провел на форуме:
505362

Репутация: 66
Отправить сообщение для awdrg с помощью ICQ
По умолчанию

[deleted]

Последний раз редактировалось awdrg; 24.05.2009 в 21:48..
 
Ответить с цитированием

  #10  
Старый 23.05.2009, 19:43
Mosvit
Познающий
Регистрация: 05.03.2007
Сообщений: 99
Провел на форуме:
744734

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

Помогите решить вот такую задачу на языке C

Цитата:
Написать подпрограмму сортировки 2-мерного массива указателей на функции, которые выдают целые значения, ПО СТРОКАМ (использовать сумму значений строки).
Буду очень благодарен! Нужно срочно сдать, но я даже в задание не врубаюсь ((
 
Ответить с цитированием
Ответ



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



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


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




ANTICHAT.XYZ