matematykaszkolna.pl
aa Hugo: #include <iostream> #include <cstdlib> #include <string> #include <fstream> using namespace std; int main(int argc, char* argv[]) { string tab = argv[1]; sizet pozycja = tab.find(" "); int table[100]; cout<<tab<<endl; for(int i=0; i<tab.length();i++){ pozycja = tab.find(" "); string nowy = tab.substr(0, pozycja); tab.erase(0,1); table[i]=atoi(nowy.cstr()); cout<<table[i]; } return 0; } Chce pobrać do stringa całą wartość stringa, dlaczego jak mam string tab = argv[1] i pobiera ino jedną liczbę ?
26 lut 18:01
Hajtowy: Musisz się Huguś jeszcze dużo uczyć
26 lut 18:08
Dziadek Mróz: Ale co chcesz zrobić i jak wykonujesz ten program?
26 lut 18:17
Dziadek Mróz: Chcesz wszystkie liczby z argumentów do string'a tab dać? To musisz program wykonać tak: program.exe "1 2 3 4 5" I wtedy argv[1] = "1 2 3 4 5"
26 lut 18:35
Hugo:
26 lut 18:37
Hugo: to dac cudzyslowie? http://scr.hu/2pdc/93oj7 :((
26 lut 18:38
Dziadek Mróz: Tak
26 lut 18:38
Dziadek Mróz: Powiedz co program ma zrobić
26 lut 18:39
Dziadek Mróz: Bo patrzę i nie wiem co on robi
26 lut 18:39
Hugo: wiec pobiera od użytkownika ciąg liczb i zwraca odwrocony ale musze to sam zrobic
26 lut 18:42
Hugo: 1/x dla 1/0 ma dawać 1
26 lut 18:42
Dziadek Mróz: No to można dać: string tab = ""; for (int i = 1; i < argc; i++) { tab += argv[i]; } I wtedy dla wykonania: program.exe 1 2 3 4 5 Mamy tab = "12345"
26 lut 18:46
Hugo: ale to chyba nie jest poprawne powinno byc jak mowiles "1 2 3 4 5 6" co myslisz? oto zadanko nr 2 http://www.isimiip.agh.edu.pl/wiki/lib/exe/fetch.php/1/zima/informatyka/egzaminy/2013/pi.jpg
26 lut 18:51
Hugo: Dev ma cos zpsute albo ja nie umiem .. jak dalem "1 2 3 4 5 6 " i calem string nowy = argv[1]; cout<<nowy; to i tak wypisalo mi jedynkeemotka wiec chyba trzeba operować na arg[i] i z tego wypisywac
26 lut 18:54
Hugo: do postu 18:46 tam cza getline(tab,cin) a co jak bedzie ciąg 1 10 100 11 2 3 4 ? cza spacje by wiedzieć czy 1 1 to całosć czy jedna wartosc
26 lut 19:04
Hugo: moze nie tyle cin ale getline
26 lut 19:04
Dziadek Mróz: No to teraz sytuacja jest klarowna: program.exe 1.2 3.5 0 8.1 1 2 4 #include <iostream> using namespace std; int main(int argc, char* argv[]) { double odwrotnosci[argc − 1]; double liczba; for (int i = 1; i < argc; i++) { liczba = atof(argv[i]); cout << "liczba: " << liczba << endl; if (liczba == 0) { odwrotnosci[i − 1] = 0; } else { odwrotnosci[i − 1] = 1.0/liczba; } cout << "odwrotnosci: " << odwrotnosci[i − 1] << endl; } return 0; } ================ READY ================ temp.exe 1.2 3.5 0 8.1 1 2 4 temp.exe 1.2 3.5 0 8.1 1 2 4 Process started >>> liczba: 1.2 odwrotnosci: 0.833333 liczba: 3.5 odwrotnosci: 0.285714 liczba: 0 odwrotnosci: 0 liczba: 8.1 odwrotnosci: 0.123457 liczba: 1 odwrotnosci: 1 liczba: 2 odwrotnosci: 0.5 liczba: 4 odwrotnosci: 0.25 <<< Process finished.
26 lut 19:07
Hugo: hmm oto moje 100% moje http://pastebin.com/26WE58kk co tam jest źle?
26 lut 19:23
Hugo: konwertujesz argv do double ;−; ... a to sie tak da? probowalem do inta i wywalalo
26 lut 19:24
Hugo: ja robie tak: argv −> string −> atoi(string.cstr()) −> int wiem wiem ze na intach to slabo dzialac
26 lut 19:25
Hugo: ale dlaczego mi źle wypisuje liczby z tabelki zamiast 1 2 3 4 5 6 wypisuje mi same zera
26 lut 19:25
Hugo: Wrzucilem twoje i pisze: C:\Users\Hugo\Desktop\www\main.cpp [Error] 'atof' was not declared in this scope w devie chyba ta funkcja nie dziala
26 lut 19:30
Hugo: #include <cmath> #include <cstdlib> #include <stdio.h> dodalem te 3 biblioteki do twojego programu i zadziaalo emotka
26 lut 19:33
Dziadek Mróz: Pewnie obaj mamy inne biblioteki zdefiniowane i mam wszystko w iostream
26 lut 19:42
Dziadek Mróz: atoi konwertuje const char * do int atof konwertuje const char * do double
26 lut 19:43
Hugo: atof nie konwertuje do floata
26 lut 19:50
Dziadek Mróz: double = long float Dlatego w printf pisze się %lf dla double i %f dla float
26 lut 19:52
Hugo: Hugo napisal i dziala ale ominął pewną kwestie http://pastebin.com/5vpf8HLM wiec zmienilem intow na floaty emotka i konwertuje do floatow tablica float i tam atof wiec nie wiem czemu mowisz ze do double, bo double !=float mysle POMOŻ MI PROSZE w kodzie u samej góry ja pobieram z argv do stringów TAK CHCE ZROBIC ale pobieram i mi sie potem wysypuje wiec w 18 linijce modyfikuje tego stringa i wtedy dziala dlaczego zmiana z argv −> stringa mi nie dziala
26 lut 19:53
Hugo: TO nie wiedzialem ..
26 lut 19:54
Dziadek Mróz: Poczytaj manual do atof i dowiedz się co jest jego argumentem i co zwraca
26 lut 19:54
Hugo: emmemotka
26 lut 19:56
Dziadek Mróz: Ale jak się upierasz to łap: http://www.cplusplus.com/reference/cstdlib/strtof/ strtof = string to float
26 lut 19:57
Gauss: Dziadek poduczysz i mnie programowania ? Również mam zaległościemotka
26 lut 19:59
Hugo: Przeciez parametry: 1 2 3 4 5 6 argv[1] = 1 argv[2] = 2 argv[3] = 3 wiec jak robie ciag = ciag + argv[i] + " "; nic = nic + 1 ciag = ciag + argv[i] + " "; 1 2 ciag = ciag + argv[i] + " "; nic = nic + 1 ciag = ciag + argv[i] + " "; 1 2 3 ... 1 2 3 4 5 6 http://scr.hu/2pdc/kijyk I TERAZ MAM PRZEBLYSK to powinno byc od argv[1] a nie od argv[0]
26 lut 20:01
Dziadek Mróz: Ciołek z Ciebie Hugo
26 lut 20:03
Dziadek Mróz: Gauss ale jak duże zaległości. Nic nie umiesz czy umiesz coś ale chcesz więcej umieć?
26 lut 20:04
Hugo: DZIAŁA pięknie http://pastebin.com/8NL9Rfb2
26 lut 20:05
Hugo: za tego argc tez ci musze podziękwoać w forze for(int i=0; i<argc;i++) nie wiedzialem ze to max ciągu
26 lut 20:06
Dziadek Mróz: Hugo pierdoło, argc to nie max ciągu tylko liczba argumentów!
26 lut 20:08
Dziadek Mróz: Nie testuj mojej cierpliwości bo mnie się na usta ciśnie mięso na Ciebie
26 lut 20:08
Hugo: racja racja
26 lut 20:08
Hugo: jutro o 14 to pisze i bedziesz miał spokój na dlugo ( :
26 lut 20:09
Gauss: umiem coś ale chcę więcej emotka ale mało umiem. ALE MAM DUŻO CZASU na nadrobienie
26 lut 20:13
Dziadek Mróz: Gauss: http://www.cs.put.poznan.pl/jkniat/PodstProg/ Od Zadania−0 do Zadania−7 Teoria: http://www.cs.put.poznan.pl/jkniat/CPP/
26 lut 20:18
Hugo: Dobra wiadomosc jest taka ze Hugo jest udany a III termin (to ten link) to zadania są łatwiejsze z3 : )) http://www.isimiip.agh.edu.pl/wiki/lib/exe/fetch.php/1/zima/informatyka/egzaminy/2013/pi.jpg
26 lut 20:18
Hugo: mam juz szkic ale uściślijmy bo pytanie mam ucięte Pobieramy z txt? i wrzucamy to do tablicy?
26 lut 20:22
Dziadek Mróz: Czytaj pytanie jeszcze 3 razy i obejrzyj przykład pliku tekstowego
26 lut 20:31
Gauss: Dziękuję, w razie pytań będę Cię szukał na forum emotka
26 lut 20:33
Hugo: http://scr.hu/2pdc/ab96x mój zarys no tak mysle ze pobiera z txt i zapisuje w tablicy w strukturze : )
26 lut 20:34
Dziadek Mróz: Panie Hugo plik tekstowy ma postać: n_ osób Osoba_1 Pesel_1 Osoba_2 Pesel_2 ... Osoba_n Pesel_n
26 lut 20:37
Dziadek Mróz: Nie wal tylu pustych linii i rób wcięcia porządne. Naucz się pisać schludnie.
26 lut 20:38
Hugo: http://pastebin.com/5PkUWqwT Co tu jest nie tak pododawalem duzo komentarzy i pousuwalem dużo wolnych luk w kodzie;
26 lut 20:53
Hugo: Nie zauważyłem tej dwójki to juz poprawiam a ten mój kodemotka?
26 lut 20:54
Hugo: kod mi wysypywal bo nie dalem ze i = 0 XDD w 29 linjce
26 lut 20:55
26 lut 21:06
Hugo: Wiec Niby fajnie i sie kompiluje i ma to sens ale nie wypisuje
26 lut 21:06
Hugo: czy mozna takie cos napisac osoba struk[i]; //wrzucamy to do struktury o nazwie struk struk[i].imie = im; struk[i].nazwisko=n; struk[i].pesel = atoi(p.cstr()); } chodzi mi o tabele ludzi struk[1] − pan nr 1 struk[2] − pan nr 2
26 lut 21:08
Hugo: WIec program się wysypuje bo max sie nie zmienia; pobieram z pierszej lini ilosc tych wierszy i konwertuje na inta max = atoi(k.cstr()); .... znalazlem ! wiec i= 0 bylo w petli i mi zerowalo caly czas
26 lut 21:25
Dziadek Mróz: Jezu Hugo. Gdy czytamy z ifstream to on pomija automatycznie wszystkie białe znaki (spacje, tabulacje, itp). Więc jak mamy przykładowy plik o zawartości: [a b c d e] to po wykonaniu instrukcji: while (plik_we >> dana) { cout << dana << endl; } wynikiem będzie: >>> a b c d e >>> Nie trzeba pobierać po linii z pliku i szukać na siłę spacji, gdy wbudowany operator strumieniowy pomija te spacje. Algorytm: Pobierz z pliku ilość osób jako int n. Tworzysz tablicę n struktur jako Osoby. Tworzysz licznik tablicy struktur jako int i = 0 Dopóki pobierasz z pliku: Pobierz Osoby[i].imie. Pobierz Osoby[i].pesel. i++; Wykonuj operacje na tablicy struktur.
26 lut 21:32
Dziadek Mróz: Zaznacz sobie ten przykładowy plik to zobaczysz gdzie są spacje a gdzie tabulacje.
26 lut 21:32
26 lut 23:32
Hugo: @Dziadek Mróz Pobiera spacje gdy sie używa getline
26 lut 23:33
Hugo: while( getline(IN,wyraz))
26 lut 23:34
27 lut 01:05
Hugo: Program dziala i wgl emotka aczkolwiek nie wiek jak dopasowac zakres wartosci w kodzie porobilem takie //////////////////////////////// i<? Gdyz to sobie dopasowalem by dzialalo a tak bz posrednio to dokladnie nie wiem jakie zmienne ustawic by sprawdzalo tylko takie a nie inne liczby pomogły by ktośemotka
27 lut 01:06