Честно говоря ВООБЩЕ не понимаю, что тут делается. Если не трудно опишите хотя бы кратко, что делеют эти строки (особенно первые две)?
Погуглил и нашёл вот такую функцию: Code: # include <stdio.h> # include <stdlib.h> int main() { int n; char n0; printf("Enter n, please:"); scanf("%f", n); itoa(n, n0, 10); printf("%s", n0); } Но вот только не пойму почему скомпиленная программа зависает. И ещё не могу понять, как может строка быть в какой-то системе исчисления (у меня в десятичной)? Ведь это же не число?
И для чего интересно такой код может понадобиться? А что по-твоему делает вот эта строчка: scanf("%f", n); ?
Делай так: 1 читаешь строку функцией cin либы iostream 2 делаешь цикл: 2.1 для i=1 до длины строки 2.2 для j=i до конца строки. 3 в цикле проверка, если str=str[j], то есть одинаковые символы. Вот и все.
Это часть кода. Программа должна определить, есть ли в четырёхзначном числе одинаковые цифры. А эта библиотека и в С есть? а то в Wikipedia написано, что это библиотека из С++.
Паскаль РУЛИТ!!!! Code: var a:string; i,j:byte; begin readln(a); for i:=1 to length(a) do for j:=i to length(a) do begin if a[i]=a[j] then begin writeln('Odinakovo'); halt; end; end; writeln('neodinakovo'); end . Это на паскале, ибо си я не знаю на 10, а компилятора под рукой нет. суть уловил, надеюсь.
Как определить есть ли в четырехзначном числе одинаковые цифры??? Code: #include <stdio.h> int main() { int a; scanf("%d\n", &a); int a3 = (a/1000)%10; int a2 = (a/100)%10; int a1 = (a/10) % 10; int a0 = a % 10; if((a0 == a1) && (a1 == a2) && (a2 == a3)) printf("Equal\n"); else printf("Not equal\n"); return 0; } И всё!
Мне тогда не совсем понятен смысл ф-ций RegOpenCurrentUser,RegOpenUserClassesRoot.В описание последней "Retrieves a handle to the HKEY_CLASSES_ROOT key for the specified user." Как тогда понимать фразу "key for the specified user" если "ульи всегда стандартны" ?
Всем доброго времени суток. Помогите, плиз, подружить Builder с wpcap'ом Пытаюсь сделать вывод инфы в Memo-поле. Вот исходник: Code: //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include <winsock.h> #include <time.h> #define HAVE_REMOTE #include "inc/pcap.h" #include "inc/remote-ext.h" #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" #pragma comment(lib,"wpcap.lib") #pragma comment(lib,"packet.lib") TForm1 *Form1; TMemo *Memo1; typedef struct ip_address{ u_char byte1; u_char byte2; u_char byte3; u_char byte4; }ip_address; /* IPv4 header */ typedef struct ip_header{ u_char ver_ihl; // Version (4 bits) + Internet header length (4 bits) u_char tos; // Type of service u_short tlen; // Total length u_short identification; // Identification u_short flags_fo; // Flags (3 bits) + Fragment offset (13 bits) u_char ttl; // Time to live u_char proto; // Protocol u_short crc; // Header checksum ip_address saddr; // Source address ip_address daddr; // Destination address u_int op_pad; // Option + Padding }ip_header; /* UDP header*/ typedef struct udp_header{ u_short sport; // Source port u_short dport; // Destination port u_short len; // Datagram length u_short crc; // Checksum }udp_header; /* prototype of the packet handler */ void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data); //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { pcap_if_t *alldevs; pcap_if_t *d; int inum; int i=0; pcap_t *adhandle; char errbuf[PCAP_ERRBUF_SIZE]; u_int netmask; char packet_filter[] = "ip and udp"; struct bpf_program fcode; /* Retrieve the device list */ if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL, &alldevs, errbuf) == -1) { Memo1->Lines->Add("Error in pcap_findalldevs:" + IntToStr(errbuf)); exit(1); } /* Print the list */ inum = 2; /* Jump to the selected adapter */ for(d=alldevs, i=0; i< inum-1 ;d=d->next, i++); /* Open the adapter */ if ((adhandle= pcap_open(d->name, 65536, PCAP_OPENFLAG_PROMISCUOUS, 1000, NULL, errbuf)) == NULL) { Memo1->Lines->Add("Unable to open the adapter."); pcap_freealldevs(alldevs); exit(1); } /* Check the link layer. We support only Ethernet for simplicity. */ if(d->addresses != NULL) netmask=((struct sockaddr_in *)(d->addresses->netmask))->sin_addr.S_un.S_addr; else netmask=0xffffff; //compile the filter if (pcap_compile(adhandle, &fcode, packet_filter, 1, netmask) <0 ) { Memo1->Lines->Add("Unable to compile the packet filter. Check the syntax."); pcap_freealldevs(alldevs); exit(-1); } if (pcap_setfilter(adhandle, &fcode)<0) { Memo1->Lines->Add("Error setting the filter."); pcap_freealldevs(alldevs); exit(-1); } pcap_freealldevs(alldevs); pcap_loop(adhandle, 0, packet_handler, NULL); } void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data) { TForm *Form1; ip_header *ih; udp_header *uh; u_int ip_len; u_short sport,dport; ih = (ip_header *) (pkt_data + 14); //length of ethernet header /* retireve the position of the udp header */ ip_len = (ih->ver_ihl & 0xf) * 4; uh = (udp_header *) ((u_char*)ih + ip_len); /* convert from network byte order to host byte order */ sport = ntohs( uh->sport ); dport = ntohs( uh->dport ); /* print ip addresses and udp ports */ Memo1->Lines->Add(ih->saddr.byte1 + ih->saddr.byte2 + ih->saddr.byte3 + ih->saddr.byte4); } //--------------------------------------------------------------------------- При нажатии на Button прога "зависает". Если сделать трассировку (F7/F8), то билдер ругается на Code: Memo1->Lines->Add(ih->saddr.byte1 + ih->saddr.byte2 + ih->saddr.byte3 + ih->saddr.byte4); В чем ошибка?
Двумерный динамический создавай так: Code: int rows, cols; cin >> rows >> cols; int **pMass = new int *[rows]; for (int i = 0; i < rows; i++) pMass[i] = new int[cols]; Обращаться например так: Code: Temp=Mass[i][j]; Можно воспользоваться стандартными контейнерами: Code: vector < vector<int> > Mass (sizecol, vector <int> (sizerow) );
вроде как Memo1->Lines->Add строку выводит а ты туда пишешь число. Попробуй функцию inet_ntoa, она возвращает IP-адрес в виде ANSIZ строки с точками
Если я вместо последнего Memo1->Lines->Add, делаю Code: ShowMessage(AnsiString(ih->saddr.byte1)); То спустя какое-то время выскакивает-таки мое окошко...правда приходится много раз на "ОК" нажимать...
тогда попробуй так, рано или поздно получится: Code: Memo1->Lines->Add(IntToStr(ih->saddr.byte1)+"."+IntToStr(ih->saddr.byte2)+"." +IntToStr(ih->saddr.byte3)+"."+IntToStr(ih->saddr.byte4)); или так: Code: char buf[64]; ... wsprintf(buf, "%u.%u.%u.%u", ih->saddr.byte1,ih->saddr.byte2,ih->saddr.byte3,ih->saddr.byte4); Memo1->Lines->Add(AnsiString(buf)); или даже так Code: Memo1->Lines->Add(AnsiString(inet_ntoa(*(struct in_addr*)&ih->saddr)))); под рукой билдера нет, но что-нить из этого точно должно работать
Доброго времени суток. Как в MFC приложение добавить красочный 32-битн. тулбар? (заранее нарисован) По дефолту в VisualStudio2008 ставится 8 бит и все мои попытки нарисовать прикольный тулбар и импортировать его в существующий проект сводились к тому что изображение с 32-х битного становилось 8-битн.. Спасибо.