Lekker dan.... 't is een dictaat van een docent btw, maar de eerste hoofdstukken mogen toch wel goed zijn anders wordt het pittig.quote:Op zaterdag 11 februari 2012 19:39 schreef thabit het volgende:
[..]
Ik zou een ander boek pakken.. Een const char* is een pointer naar een const char. Dit zou suggereren dat de functie de chars in stg niet verandert, wat-ie natuurlijk wel doet. Die functie heeft dus een gewone char* als input, niet een const char*.
quote:
De chars in stg (en dus line) wil je kunnen aanpassen, anders kan je wel leuk chars gaan intypen maar niet opslaan en gebruiken in je programma.quote:Op zondag 12 februari 2012 16:46 schreef Oneironaut het volgende:
[..]
Lekker dan.... 't is een dictaat van een docent btw, maar de eerste hoofdstukken mogen toch wel goed zijn anders wordt het pittig.
Btw, kun je "wat-ie natuurlijk wel doet" toelichten?
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | int main(){ WSAData wsaData; sockaddr_in dest,local; std::cout << "Inizializing... "; if(WSAStartup(MAKEWORD(2,0),&wsaData) == 0){ if(LOBYTE(wsaData.wVersion) >= 2){ std::cout << "Done.\n"; } else std::cout << "Failed!\nRequired version not supported.\n"; local.sin_family = AF_INET; local.sin_addr.s_addr = inet_addr(IP_SOURCE); local.sin_port = 0; dest.sin_family = AF_INET; dest.sin_addr.s_addr = inet_addr(IP_DESTINATION); dest.sin_port = 0; try{ SOCKET hSocket; std::cout << "Creating Socket... "; if(hSocket = socket(AF_INET,SOCK_RAW,IPPROTO_ICMP) == INVALID_SOCKET){ std::cout << "Failed!\n"; throw Error(); } std::cout << "Done.\n"; std::cout << "Binding... "; if(bind(hSocket,(sockaddr*)&local,sizeof(local)) != 0){ std::cout << "Failed!\n"; std::cout << "WSA Last Error: " << WSAGetLastError() << '\n'; throw Error(); } std::cout << "Done.\n"; ICMPHeader ICMP; ICMP._TYPE = 8; // echo-request ICMP._CODE = 0; ICMP._CHECKSUM = 0; std::cout << "Sending... "; if(sendto(hSocket,(char*)&ICMP,sizeof(ICMP),0,(sockaddr*)&dest,sizeof(dest)) == SOCKET_ERROR){ std::cout << "Failed!\n"; throw Error(); } std::cout << "Done.\n"; } catch(Error){} std::cout << "Cleaning up... "; if(WSACleanup()!= 0){ std::cout << "Failed!\n"; return -1; } else std::cout << "Done.\n"; } else std::cout << "Failed!\n"; return 0; } |
| 1 | if(hSocket = socket(AF_INET,SOCK_RAW,IPPROTO_ICMP) == INVALID_SOCKET){ |
SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.PS: Je code was niet gemakkelijk te compileren. Als je sneller antwoord wilt, zorg dan dat je ook de nodige headers in de code zet, erbijzet met welke libraries je linkt en eventueel ontbrekende of overbodige klassen (ICMPHeader?) verduidelijkt."Slechts diegene mag slopen die iets beters kan bouwen."
| 1 | if( (hSocket = socket(AF_INET,SOCK_RAW,IPPROTO_ICMP)) == INVALID_SOCKET ) |
Oh, ik dacht dat de spoiler wel duidelijk genoeg was. Maar je hebt het probleem nu gevonden.quote:Op dinsdag 14 februari 2012 14:13 schreef netolk het volgende:
Um, bij mijn weten probeerd ie eerst de socket te maken en checkt ie daarna of dat gelukt is. Maar dit is dan niet zo? Want deze manier van fout controle heb ik ook ooit eens in een tut voor tcp gezien.
Ow, enne ik Krijg geen waarschuwing van mijn compiler wat zou die waarschuwing moeten zijn?
Als je waarschuwingen wilt zien, moet je meestal een flag meegeven (in mijn geval -wall).quote:In function 'int main()':
warning: suggest parentheses around assignment used as truth value
Hehe, had die hele spoiler niet gezien....quote:Op dinsdag 14 februari 2012 14:41 schreef GS42 het volgende:
[..]
Oh, ik dacht dat de spoiler wel duidelijk genoeg was. Maar je hebt het probleem nu gevonden.
De waarschuwing die mijn compiler (g++ 4.5) geeft is
[..]
Als je waarschuwingen wilt zien, moet je meestal een flag meegeven (in mijn geval -wall).
Graag gedaan.
SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
[ Bericht 60% gewijzigd door netolk op 17-02-2012 18:32:32 ]Beware of the Raping Zebra's
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | struct ICMPHeader { unsigned int type : 8; unsigned int code : 8; unsigned int checksum : 16; }; struct ICMPPing : ICMPHeader { unsigned int ident : 16; unsigned int sequence : 16; unsigned char data[32]; }; ICMPPing ping; ping.type = 8; ping.code = 0; ping.checksum = 0; ping.ident = 0; ping.sequence = 0; memcpy(ping.data, "abcdefghijklmnipqrstuvwxyz012345", 32); |
| 1 | double my_func(double (*my_arg)(double(*)(double)) |
| 1 | double my_func(double (*my_arg)(double)) |
Dat klopt niet, my_func is hier geen pointer naar een functie. Vervang...quote:Ik snap dat bijv:1 [code]double my_func(double (*my_arg)(double))[/code]
een pointer is naar een functie met als returntype double
| 1 | double (*my_arg)(double) |
| 1 | double a |
| 1 2 3 4 5 | double my_func( double (*my_arg)( double(*)(double) ) ); |
| 1 | std::vector<std::pair<int, int>> vb; |
C/C++ gebruik ik voor low-level spul. Voor het hogere programmeerwerk gebruik ik Python.quote:Op zondag 4 maart 2012 13:56 schreef GS42 het volgende:
... Of, als jullie C++11 niet gebruiken, ben ik daar ook benieuwd naar hoor.
Niet nodig? Te ingewikkeld? Geen compiler-ondersteuning? Nooit van gehoord? ...?
Ik denk niet dat mijn compiler het ondersteund aangezien ik een best oude gebruik omdat de nieuwe versie dll's mist oid. Maar die std::thread klinkt interessant, dat moet ik nu nog allemaal via windows doenquote:Op zondag 4 maart 2012 13:56 schreef GS42 het volgende:
... Of, als jullie C++11 niet gebruiken, ben ik daar ook benieuwd naar hoor.
Niet nodig? Te ingewikkeld? Geen compiler-ondersteuning? Nooit van gehoord? ...?
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | struct b8TOb16{ char _B0:8; char _B1:8; void set(char B0,char B1){_B0=B0;_B1=B1;} }; std::ofstream Write("Test.lvl",std::ios::binary); if(Write.is_open()){ b8TOb16 myb8TOb16; unsigned short _X=5,_Y=5,_Z=1; myb8TOb16 = *(b8TOb16*)(&_X); Write.put(myb8TOb16._B0); Write.put(myb8TOb16._B1); std::cout << int(myb8TOb16._B0) << '\t' << int(myb8TOb16._B1) << '\n'; Write.close(); } |
| 1 2 | myb8TOb16.set(read.get(),read.get()); std::cout << *(unsigned short*)(&myb8TOb16) << '\n'; |
| 1 2 3 | char temp1=read.get(),temp2=read.get(); myb8TOb16.set(temp1,temp2); std::cout << *(unsigned short*)(&myb8TOb16) << '\n'; |
| 1 | myb8TOb16.set(read.get(),read.get()); |
| 1 2 | int i = 0; functie(i++, i++); |
| Forum Opties | |
|---|---|
| Forumhop: | |
| Hop naar: | |