Я вчера тоже нашел эту функцию, случайно пропустил в документации. За ответ Ваш все равно большое спасибо. ПРо FILE не мог найти!
Нужно по номеру мобильного определить оператора, казалось бы всё просто, но то что набрасал работает но не правильно. Code: #include <iostream.h> #include <conio.h> #include <string.h> void main() { char *str="067,097,063,093,098,068,066"; char* mob; char *strt; mob=new char[10]; cout<<"Input mob: "; cin.getline(mob,10); strt=strtok(str,","); while(strt !=NULL) { if(strncmp(strt,mob,3)==0) { if((strt="067")&&(strt="097")) cout<<"Operator "<<strt<<" Kyivstar \n"; if((strt="063")&&(strt="098")&&(strt="093")) cout<<"Operator "<<strt<<" Life \n"; } strt=strtok(NULL,","); } getch(); delete []mob; } Или совсем не выводит или выводит все операторы, а нужно что бы правильный =)
Адовая смесь с++ и си... PHP: #include <string> #include <map> #include <iostream> void main() { std::map<std::string, std::string> operators; operators.insert(std::make_pair("067", "Kyivstar")); operators.insert(std::make_pair("097", "Kyivstar")); operators.insert(std::make_pair("063", "Life")); operators.insert(std::make_pair("098", "Life")); operators.insert(std::make_pair("093", "Life")); std::string number; while(true) { std::cout << "Enter number or q to exit: "; std::cin >> number; if(number == "q") break; if(number.length() != 10) //можно еще проверить, что все символы - цифры, я опустил это { std::cout << "Incorrect number" << std::endl; continue; } std::map<std::string, std::string>::const_iterator oper = operators.find(number.substr(0, 3)); if(oper == operators.end()) std::cout << "Operator not found" << std::endl; else std::cout << "Operator: " << (*oper).second << std::endl; } }
return если хочется над учителем пошутить ) Code: #include <cstdio> #include <cstdlib> #include <windows.h> struct z{ char *op; char **prx; int c; }; int c; z *a; void i_(char *s){ --c; a[c].prx = (char**)realloc(a[c].prx, ++a[c].c * sizeof(char*)); a[c].prx[a[c].c - 1] = strdup(s); ++c; return; } struct u{u& operator()(char*s){i_(s);return*this;}}; u i(char *s){ a = (z*)realloc(a, sizeof(z) * (c + 1)); a[c].op = strdup(s), a[c].c = 0, a[c].prx = 0, ++c; return u(); } void s(char *s){ for (int i = 0; i < c; i++){ for (int j = 0; j < a[i].c; j++){ if (!strcmp(a[i].prx[j], s)){ puts(a[i].op); return; } } } puts("not found"); } void d(){ for (int i = 0; i < c; i++){ for (int j = 0; j < a[i].c; j++){ free(a[i].prx[j]); } free(a[i].prx); free(a[i].op); } free(a), a = 0, c = 0; } int main(){ i("Kyivstar")("077")("087")("077")("099")("033"); i("Life")("011")("012")("013")("014")("015")("016")("017")("018"); s("013"), s("087"); d(); } пусть покумекает ))
Code: #include "stdafx.h" #include <winsock2.h> #include <conio.h> #include <fstream> #pragma comment(lib, "Ws2_32.lib"); #define PORT 80 #define SERVER "127.0.0.1" #define MAX_PACKET_SIZE 4096 int _tmain(int argc, char* argv[]) { char sendbuffer[2048]; strcpy(sendbuffer, "GET http://localhost/xx.php"); strcat(sendbuffer, " HTTP/1.0\r\n"); strcat(sendbuffer, "User-Agent: Opera\r\n"); strcat(sendbuffer, "Host: localhost\r\n"); strcat(sendbuffer, "Connection: close"); strcat(sendbuffer, "\r\n\r\n"); WSADATA wsaData; SOCKET socketfd; struct sockaddr_in server_addr; struct hostent *h; char response[1024*5]; WSAStartup(MAKEWORD(2,2), &wsaData); socketfd=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); server_addr.sin_family = AF_INET; server_addr.sin_port = htons(PORT); server_addr.sin_addr.S_un.S_addr = inet_addr(SERVER); if(h = gethostbyname(SERVER)){ ((unsigned long *)&server_addr.sin_addr)[0] = ((unsigned long **)h -> h_addr_list)[0][0]; } else { printf("Invalid address %s\n", SERVER); closesocket(socketfd); WSACleanup(); return -1; } if (connect(socketfd, (const struct sockaddr*)&server_addr, sizeof(struct sockaddr))){ printf("Connect error %d\n", WSAGetLastError()); return -1; } send(socketfd, sendbuffer, strlen(sendbuffer), 0); recv(socketfd, &response[0], 2048, 0); printf("%s\n", response); FILE *OutFile = fopen("c:\\test.txt", "w"); fprintf(OutFile, "%s %d\n", response, strlen(response)); fclose(OutFile); memset(&response, 0, sizeof(response)); closesocket(socketfd); WSACleanup(); getch(); return 0; } На выходе получается Code: zomgМММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММ zomg - полученных текст, все остальное как понимаю остаток свободного места в буффере, как убрать и оставить только zomg на выходе?
могу предположить что после zomg не стоит \0, вот он и продолжает выводить до тех пор пока не встретить символ конца строки. recv вроде возвращает реальное число считанных байт. printf("%s", buf) выводит символы начиная от указанного адреса и пока не встретит символ конца строки '\0' Либо сам его записывай в буфер по количеству принятых байт, либо выводить от response до response + число_получ_байт recv() Code: number_characters_read = recv(socket_fd, response, bufSize,0); if( number_characters_read == 0 ) { strcpy(response, "EMPTY"); return response; } response[number_characters_read+1]='\0'; на подобие этого тебе надо сделать
Все привет, может не в той теме написал но очень интерисует разработка простой базы данных для учета посещяемости занятий в танцевальной школе, размешение такой базы данных планируется на компьютере(не на сайте) icq 254816369
можно ли сделать так и если да то как правильно Code: class A { A(int x): x_(x){}; // т.е. вызвать конструктор этого же класса с отличной сигнатурой A(int x, int y): A(x), y_(y) {}; int x_, y_; }
2cupper попробую объяснить на примерен msvc++ в общем то ради экспиримента можно но это катастрофично будет прежде чем твой список инициализации получит управление уже создадутся все базовые классы потом ты вызываеш другую версию конструктора повторно создаются базовые классы и все крах допустим вызываем конструктор с двумя аргументами Code: struct base{ base(){} }; class A:base{ public: A(int x): x_(x){} A(int x, int y){ попадаем сначало сюда push ebp mov ebp,esp sub esp,44h push ebx push esi push edi mov dword ptr [ebp-4],ecx mov ecx,dword ptr [this] call base::base (42B8F7h) тут создаем базовые классы ((void(__thiscall*)(A*,int))0x0042D6E0)(this,x); // addr A(int x):x_(x){} // or new(this)A(x); mov eax,dword ptr [x] push eax mov edx,offset A::A (42D6E0h) mov ecx,dword ptr [this] call edx вызываем к-тор с одним аргументом прыгаем(см листинг ниже) y_ = y; mov eax,dword ptr [this] вернулись сюда уже два раза mov ecx,dword ptr [y] создали базовые классы КОПЕЦ!!! mov dword ptr [eax+4],ecx } mov eax,dword ptr [this] pop edi pop esi pop ebx mov esp,ebp pop ebp ret 8 --- No source file ------------------------------------------------------------- ///////////////////////////////////////////////////////////// class A:base{ public: A(int x): x_(x){} push ebp сюда прыгнули из кон-ра с двумя аргументами mov ebp,esp sub esp,44h push ebx push esi push edi mov dword ptr [ebp-4],ecx mov ecx,dword ptr [this] call base::base (42B8F7h) снова создаем базовые классы mov eax,dword ptr [this] ПОВТОРНО как минимум утечка памяти mov ecx,dword ptr [x] mov dword ptr [eax],ecx mov eax,dword ptr [this] pop edi pop esi pop ebx mov esp,ebp pop ebp ret 4 возвращаемся --- No source file ------------------------------------------------------------- /////////////////////////////////////////////////////////////////////////
Code: int aaa, bbb; _asm { mov bbb,4; mov aaa,bbb; } Никак не пойму что не так. Пишет ошибку: error C2415: недопустимый тип операнда
Команда mov может данные перемещать только из памяти в регистр, из регистра в память и из регистра в регистр. Из памяти в память не может. Code: int aaa, bbb; _asm { mov bbb,4; mov eax,bbb; mov aaa,eax; }
вопрос пока на уровне теории. возможно ли написать модуль к Apache на C, файл mod_page.so к примеру, который будет отображать результат скрипта php: при запросе к адресу http://localhost/hello_world.php ? фактически файла hello_world.php существовать не будет.
Топчусь уже пару дней на одно месте не могу сдвинуться. Что нужно для того чтобы в Linux g++работать с mysql ? Я из репозитария установил сервер и клиент. Далее пошол в документацию http://dev.mysql.com/doc/refman/5.1/en/connector-cpp.html там скачал драйвер а что с ним делать дальше не как не пойму, толи его нужно рассовать по системным папкам толи в проекте держать... не как не разберусь PS. Или с помощью чего лучше организовать работу с mysql из С++ (на лине)?
Может сперва научиться пользоваться поиском ? Первая ссылка гугла по рэквесту: linux c++ mysql example _http://softexpert.wordpress.com/2007/10/18/how-to-connect-to-a-mysql-db-using-c-linux/
Я создал пару классов с которыми постонно работаю, но каждый раз когда хочу протестировать пару фич постоянно приходится подключать все заново. Вопрос можно ли как то автоматизировать процесс, т.е. сделать что-то типа шаблонов т.е щелкнул и уже пустой проект создан с нужным мне набором классов и библиотек (использую VS2010) :?
char szRecvBuff[1024]; MessageBoxW(0,szRecvBuff,L"recive data",0); MessageBoxA(0,szRecvBuff,L"recive data",0); MessageBox(0,szRecvBuff,L"recive data",0); как прально писать, чтобы не: Error 3 error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'char [1024]' to 'LPCWSTR' k:\cproject\tcpclient\tcpclient\tcpclient.cpp 273 TCPClient P.S msvs 2008
Я отвечаю на такое уже третий раз как минимум... https://forum.antichat.ru/showpost.php?p=2314930&postcount=5631 Подозреваю, что в этом случае нужно отобразить именно массив char, тогда следует использовать ANSI-функцию MessageBoxA. PHP: MessageBoxA(0, szRecvBuff, "received data", 0); И отучайтесь от венгерской нотации.