Есть тут люди, кто в этом шарит? :-)
Есть вопросы - хотел бы задать :-)
08.01.2007, 10:55 | #37153 |
Новичок
Регистрация: 05.01.2007
Адрес: Украина
Сообщения: 6
|
по поводу "cout"...
Пример из книги "Полный справочник по С++" 4-ое издание, Герберт Шилдт:
#include <iostream> #include <cstring> using namespace std; class phonebook { public: char name[80]; int areacode; int prefix; int num; phonebook(char *n, int a, int p, int nm) { strcpy(name, n); areacode = a; prefix = p; num = nm; } }; // Display name and phone number. ostream &operator<<(ostream &stream, phonebook o) { stream << o.name << " "; stream << "(" << o.areacode << ") "; stream << o.prefix << "-" << o.num << "\n"; return stream; // must return stream } int main() { phonebook a("Ted", 111, 555, 1234); phonebook b("Alice", 312, 555, 5768); phonebook c("Tom", 212, 555, 9991); cout << a << b << c; return 0; } ..... |
14.04.2007, 16:19 | #46069 |
Старожила
Регистрация: 17.10.2005
Адрес: где то в степях Ярославщины
Сообщения: 399
|
Может кто нить сможет разрешить маленький нюанс. Дело в следующем: апишная функция GetModuleFileName получает во втором параметре указатель на строковый буфер, в котором возвращает полное имя файла (полное, т.е. типа "C:\mydir\my_subdir\filename.exe"), которое собсна мне и не требуется. Мне необходимо из этой строки взять тольно непосредственно имя файла (filename.exe). Каким образом это можно было бы реализовать? Я сделал следующим образом, но как то криво мне кажецца. Отматывал указателем с конца строки до первого бекслеша и копировал дальше в буффер:
Код:
GetModuleFileName(NULL,&NameBuffer[0],MAX_PATH); DWORD StringLenght=lstrlen(&NameBuffer[0]); char* lpNameBuffer=&NameBuffer[StringLenght-1]; do{ --lpNameBuffer; }while(*lpNameBuffer!='\x5C'); char* lpShortName=ShortName; do{ ++lpNameBuffer; *lpShortName = *lpNameBuffer; ++lpShortName; }while(*lpNameBuffer!='\0'); printf("ShortName: %s\n",&ShortName[0]); ЗЫ функцию fnsplit() не предлагать =)
__________________
|
02.01.2008, 14:24 | #54950 |
Новичок
Регистрация: 29.12.2007
Адрес: Екатеринбург
Сообщения: 3
|
дело в том, что cout это объект пространства имен std и его использование делает акцент на Объектно-Ориентированном Программировании, а поскольку С++, в отличии от С, задумывался как ОО язык, то и ясно, что именно про cout писать будут.
__________________
|
05.01.2008, 13:08 | #55027 |
Старожила
Регистрация: 17.10.2005
Адрес: где то в степях Ярославщины
Сообщения: 399
|
Блин, юзайте prinft(...), нормальная функция форматированного вывода... но суть вопроса не в этом, собсно говоря.
Подскажите, если кто знает, что за технология такая хитрая, LSP (Layered Service Provider), это из серии "снифферы". Сниффер на сырых сокетах хватает только входящие пакеты, мне же надо бы и исходящие поймать. На всех форумах рекомендуют либо NDIS драйвер либо вот именно эту технологию... а описания что то нигде найти не могу, даже в MSDN как то все плохо. Кто нибуть что нибуть знает? =) PS сорри, уже не надо думаю =) мелкомяхкие вроде рассматривают такой вопрос, надо учить англицкий.
__________________
Последний раз редактировалось Kostyan, 05.01.2008 в 13:27. |
01.06.2008, 14:48 | #55928 |
Сейлормун
(луна в тельняшке) Регистрация: 04.11.2005
Адрес: Москва, ЮАО, ЧЮ
Сообщения: 504
|
Добрый день =) Такая ситуация:
На работе нужно программить порты, и мне сказали это делать под ДОСом, в Турбо С. cout и cin не пашут (от чего - понимаю, но это не важно), юзаю scanf и printf. Так вот, при выводе массива символов (допустим "1001110011") программа некоторые единицы заменяет на "(null)". Никто не подскажет, чё это за лажа такая?(
__________________
[ |
03.06.2008, 17:11 | #55966 |
Сейлормун
(луна в тельняшке) Регистрация: 04.11.2005
Адрес: Москва, ЮАО, ЧЮ
Сообщения: 504
|
Kostyan
Код:
#include <stdio.h> #include <conio.h> #include <string.h> main() { int a[16], z[16]; int i, j; char m, str[9], mark[9]="01111111"; printf("Vvedite bite-marker \n"); scanf("%s", str); if (strcmp(mark,str)) printf("ERROR"); else printf("Vvedenniy bite marker verniy - 0x7f \n Vipolnit' poisk?"); m=getch(); printf("%c", m); if (m=='y') printf("Vvedite massiv is 16 znakov \n"); for (i=0;i<16;i++) {scanf("%d", a[i]); printf("\n"); for (i=0;i<16;i++) printf("%d", a[i], " "); /*Searching*/ for (i=0;i<9;i++) { if (a[i]==0 && a[i+1]==1 && a[i+2]==1 && a[i+3]==1 && a[i+4]==1 && a[i+5]==1 && a[i+6]==1 && a[i+7]==1) {z[i]=a[i]; z[i+1]=a[i+1]; z[i+2]=a[i+2]; z[i+3]=a[i+3]; z[i+4]=a[i+4]; z[i+5]=a[i+5]; z[i+6]=a[i+6]; z[i+7]=a[i+7]; i=i+8;} else z[i]=0; } for (j=9;j<16;j++) {z[j]=0;} printf("\n"); for (i=0;i<16;i++) {printf("%d", z[i], " ");} getch(); }return 0;}
__________________
[ |
12.06.2008, 09:36 | #56378 |
Старожила
Регистрация: 17.10.2005
Адрес: где то в степях Ярославщины
Сообщения: 399
|
Rocker_dead, если честно, посмотрел я сорец и чегото плохо его осилил... обратил внимание на явные баги (трудно мимо пройти), но смысл алгоритма не очень... пить закончу, потом может разберусь...
__________________
|
Здесь присутствуют: 1 (пользователей - 0 , гостей - 1) | |
|
|