Ĺadny brzuch
Witam,
w temacie nie podałem konkretnego problemu, gdyż nie chcę tworzyć wielu topiców i zaśmiecać forum, więc wszystkie moje problemiki opiszę tutaj :)
a więc pierwsze pytanie w jaki sposób zapisać to co zwraca funkcja system do chara ?
mam taki kodzik:
#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { char *x = ""; system("ECHO hehehe"); // chcę żeby to co zwróci funkcja (napis hehehe) było zapisane w x system("PAUSE"); return EXIT_SUCCESS; }
dodam, że używam DevC++ ;]
proszę o pomoc i pozdrawiam
Poczytaj sobie o:FILE* popen(const char *command, const char *mode);
dzięki reVis, znalazłem info na stronie microsoftu ;]
http://msdn2.microso...s4b(vs.71).aspx
dobra mam następne pytanko
#include <iostream> #include <cstdlib> #include <stdio.h> using namespace std; main () { string x = ""; printf("wpisz cos\n"); cin >> x; cout << "wpisales " << x << "\n"; system("PAUSE"); return 0; }
program działa, ale chciałem zamienić
cout << "wpisales " << x << "\n";
na printf();
niestety nie wiem jak to zrobić, jak wpisuje printf("wpisales "+x); to jest błąd
`struct std::string' used where a `char' was expected
dlatego domyślam się że trzeba tego stringa jakoś przekonwertować :>
printf("wpisales %s", x.c_str());
Użytkownik bryn edytował ten post 07 lipiec 2007, 20:33
printf("wpisales %s", x.c_str());
nie działa
invalid operands of types `const char[15]' and `const char*' to binary `operator+'
ciekawe, jak zrobie tak to wszystko jest w porządku:
string x = "sex"; char tmp[128]; printf("przypisz cos do zmiennej x\n"); cin >> x; strcpy(tmp, (x).c_str()); cout << "wpisales " << tmp;
O_o
Użytkownik tsukuyomi_reload edytował ten post 07 lipiec 2007, 20:57
Coś źle przepisałeś...
printf("wpisales %s", x.c_str());
tutaj nigdzie nie ma plusika, więc skąd u niego
binary `operator+'?
Ahh....
przyzwyczajenie z Delphi plus kodu nie chciałem kopiować (ctrl+c, ctrl+v) żeby się czegoś nauczyć ;)
jeszcze raz wielkie dzięki ! :)
a wiesz może jak wysyłać pakiety raw ? (chodzi mi głównie o ping [nie taki -> system("ping ...")])
na googlach znalazłem tylko to link
Ahh....
przyzwyczajenie z Delphi plus kodu nie chciałem kopiować (ctrl+c, ctrl+v) żeby się czegoś nauczyć ;)
jeszcze raz wielkie dzięki ! :)
a wiesz może jak wysyłać pakiety raw ? (chodzi mi głównie o ping [nie taki -> system("ping ...")])
na googlach znalazłem tylko to link
Pinga? Socketami się wysyła :). Więcej google -> sockets / man sockets.
// Choć pewnie c++ ma też jakieś magiczne klasy obsługujące gniazdka - ale to już niech napisze ktoś kto wie co i jak ;).
Użytkownik Ali240 edytował ten post 07 lipiec 2007, 21:44
znalazłem na necie coś takiego (autor postu pisał, że kod jest gotowy do kompilacji):
#include <winsock2.h> #include <iostream> #include <fstream> using namespace std; int main() { WSADATA wsa; WSAStartup(MAKEWORD(2,0),&wsa); SOCKET gniazdo; char bufor[512]; memset(bufor,'',512); struct sockaddr_in adres; struct hostent* host; host = gethostbyname("http://www.evolucja.ugu.pl"); gniazdo = socket(PF_INET,SOCK_STREAM,IPPROTO_TCP); adres.sin_family = PF_INET; adres.sin_port = htons(80); adres.sin_addr.s_addr = *((unsigned long*) host->h_addr); memset(adres.sin_zero,'',8); connect(gniazdo,(struct sockaddr*)&adres,sizeof(adres)); char zapytanie [] = "GET /plik.txt HTTP/1.1\r\n" "Host: evolucja.ugu.pl\r\n\r\n"; send(gniazdo,zapytanie,sizeof(zapytanie),0); recv(gniazdo,bufor,sizeof(bufor),0); int poczatek_pliku = string(bufor).find("\r\n\r\n"); ofstream pliczek("zapis.txt"); for(int i=poczatek_pliku+4;i<strlen(bufor);i++) pliczek<<bufor[i]; pliczek.close(); closesocket(gniazdo); WSACleanup(); return 0; }
niestety wyskakuje mi błąd:
undefined reference to `WSAStartup@8'
undefined reference to `gethostbyname@4'
undefined reference to `socket@12'
undefined reference to `htons@4'
undefined reference to `connect@12'
undefined reference to `send@16'
undefined reference to `recv@16'
undefined reference to `closesocket@4'
undefined reference to `WSACleanup@0'
co jest źle ?
Brakuje Ci pewnie jakiegoś pliku nagłówkowego. Jaki kompilator używasz?
// google -> undefined reference to `WSAStartup@8'
wynik: http://www.gamedev.n...topic_id=323433
Użytkownik Ali240 edytował ten post 08 lipiec 2007, 15:42
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
w temacie nie podałem konkretnego problemu, gdyż nie chcę tworzyć wielu topiców i zaśmiecać forum, więc wszystkie moje problemiki opiszę tutaj :)
a więc pierwsze pytanie w jaki sposób zapisać to co zwraca funkcja system do chara ?
mam taki kodzik:
#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { char *x = ""; system("ECHO hehehe"); // chcę żeby to co zwróci funkcja (napis hehehe) było zapisane w x system("PAUSE"); return EXIT_SUCCESS; }
dodam, że używam DevC++ ;]
proszę o pomoc i pozdrawiam
Poczytaj sobie o:FILE* popen(const char *command, const char *mode);
dzięki reVis, znalazłem info na stronie microsoftu ;]
http://msdn2.microso...s4b(vs.71).aspx
dobra mam następne pytanko
#include <iostream> #include <cstdlib> #include <stdio.h> using namespace std; main () { string x = ""; printf("wpisz cos\n"); cin >> x; cout << "wpisales " << x << "\n"; system("PAUSE"); return 0; }
program działa, ale chciałem zamienić
cout << "wpisales " << x << "\n";
na printf();
niestety nie wiem jak to zrobić, jak wpisuje printf("wpisales "+x); to jest błąd
`struct std::string' used where a `char' was expected
dlatego domyślam się że trzeba tego stringa jakoś przekonwertować :>
printf("wpisales %s", x.c_str());
Użytkownik bryn edytował ten post 07 lipiec 2007, 20:33
printf("wpisales %s", x.c_str());
nie działa
invalid operands of types `const char[15]' and `const char*' to binary `operator+'
ciekawe, jak zrobie tak to wszystko jest w porządku:
string x = "sex"; char tmp[128]; printf("przypisz cos do zmiennej x\n"); cin >> x; strcpy(tmp, (x).c_str()); cout << "wpisales " << tmp;
O_o
Użytkownik tsukuyomi_reload edytował ten post 07 lipiec 2007, 20:57
Coś źle przepisałeś...
printf("wpisales %s", x.c_str());
tutaj nigdzie nie ma plusika, więc skąd u niego
binary `operator+'?
Ahh....
przyzwyczajenie z Delphi plus kodu nie chciałem kopiować (ctrl+c, ctrl+v) żeby się czegoś nauczyć ;)
jeszcze raz wielkie dzięki ! :)
a wiesz może jak wysyłać pakiety raw ? (chodzi mi głównie o ping [nie taki -> system("ping ...")])
na googlach znalazłem tylko to link
Ahh....
przyzwyczajenie z Delphi plus kodu nie chciałem kopiować (ctrl+c, ctrl+v) żeby się czegoś nauczyć ;)
jeszcze raz wielkie dzięki ! :)
a wiesz może jak wysyłać pakiety raw ? (chodzi mi głównie o ping [nie taki -> system("ping ...")])
na googlach znalazłem tylko to link
Pinga? Socketami się wysyła :). Więcej google -> sockets / man sockets.
// Choć pewnie c++ ma też jakieś magiczne klasy obsługujące gniazdka - ale to już niech napisze ktoś kto wie co i jak ;).
Użytkownik Ali240 edytował ten post 07 lipiec 2007, 21:44
znalazłem na necie coś takiego (autor postu pisał, że kod jest gotowy do kompilacji):
#include <winsock2.h> #include <iostream> #include <fstream> using namespace std; int main() { WSADATA wsa; WSAStartup(MAKEWORD(2,0),&wsa); SOCKET gniazdo; char bufor[512]; memset(bufor,'',512); struct sockaddr_in adres; struct hostent* host; host = gethostbyname("http://www.evolucja.ugu.pl"); gniazdo = socket(PF_INET,SOCK_STREAM,IPPROTO_TCP); adres.sin_family = PF_INET; adres.sin_port = htons(80); adres.sin_addr.s_addr = *((unsigned long*) host->h_addr); memset(adres.sin_zero,'',8); connect(gniazdo,(struct sockaddr*)&adres,sizeof(adres)); char zapytanie [] = "GET /plik.txt HTTP/1.1\r\n" "Host: evolucja.ugu.pl\r\n\r\n"; send(gniazdo,zapytanie,sizeof(zapytanie),0); recv(gniazdo,bufor,sizeof(bufor),0); int poczatek_pliku = string(bufor).find("\r\n\r\n"); ofstream pliczek("zapis.txt"); for(int i=poczatek_pliku+4;i<strlen(bufor);i++) pliczek<<bufor[i]; pliczek.close(); closesocket(gniazdo); WSACleanup(); return 0; }
niestety wyskakuje mi błąd:
undefined reference to `WSAStartup@8'
undefined reference to `gethostbyname@4'
undefined reference to `socket@12'
undefined reference to `htons@4'
undefined reference to `connect@12'
undefined reference to `send@16'
undefined reference to `recv@16'
undefined reference to `closesocket@4'
undefined reference to `WSACleanup@0'
co jest źle ?
Brakuje Ci pewnie jakiegoś pliku nagłówkowego. Jaki kompilator używasz?
// google -> undefined reference to `WSAStartup@8'
wynik: http://www.gamedev.n...topic_id=323433
Użytkownik Ali240 edytował ten post 08 lipiec 2007, 15:42