Pa napisao sam ti ATOI, AlphaToInteger.
http://www.cplusplus.com/reference/clibrary/cstdlib/atoi/
- +/- sve poruke
- ravni prikaz
- starije poruke gore
Koristiš funkciju substring.
Npr. : string sati = str.substr(0,2) i onda to sa funkcijom atoi pretvoriš u integer. in h = atoi(sati);
Da li bi mi funkcija trebalo ovako da izgleda?
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int vrijemeUsekundama(string hhmmss){
string sati= hhmmss.substr(0,2);
string minute= hhmmss.substr(2,4);
string sekunde= hhmmss.substr(4,6);
int sati, minute, sekunde;
istringstream ( sati ) >> sati;
istringstream ( minute ) >> minute;
istringstream ( sekunde ) >> sekunde;
int vrijemeusekundama=0;
int h=sati*3600;
int m=minute*60;
int s=sekunde;
return vrijemeusekundama=h+m+s;}
Koristiš funkciju substring.
Npr. : string sati = str.substr(0,2) i onda to sa funkcijom atoi pretvoriš u integer. in h = atoi(sati);
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int vrijemeUsekundama(string hhmmss){
string sati= hhmmss.substr(0,2);
string minute= hhmmss.substr(2,4);
string sekunde= hhmmss.substr(4,6);
int sati, minute, sekunde;
istringstream ( sati ) >> sati;
istringstream ( minute ) >> minute;
istringstream ( sekunde ) >> sekunde;
int vrijemeusekundama=0;
int h=sati*3600;
int m=minute*60;
int s=sekunde;
return vrijemeusekundama=h+m+s;}
Da li bi ovako trebalo da izgleda funkcija?
Ja ne kužim kaj se u tvojem zadatku traži.Da li samo treba pretvoriti zadano vrijeme u sekunde,ili treba upisati dva vremena i onda izračunati razliku između?
Pa to i mene ekstremno zbunjuje :S
Ali kad pogledam ovu napomenu, nekako mi logicno da se treba pretvoriti vrijeme u sekunde i onda izracunati razliku medju njima. Jes da je malo konfuzno al izgleda da je tako :S
Koristiš funkciju substring.
Npr. : string sati = str.substr(0,2) i onda to sa funkcijom atoi pretvoriš u integer. in h = atoi(sati);
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int vrijemeUsekundama(string hhmmss){
string sati= hhmmss.substr(0,2);
string minute= hhmmss.substr(2,4);
string sekunde= hhmmss.substr(4,6);
int sati, minute, sekunde;
istringstream ( sati ) >> sati;
istringstream ( minute ) >> minute;
istringstream ( sekunde ) >> sekunde;
int vrijemeusekundama=0;
int h=sati*3600;
int m=minute*60;
int s=sekunde;
return vrijemeusekundama=h+m+s;}
Da li bi ovako trebalo da izgleda funkcija?
Ti to napamet radiš? Kompajliraj svoj kod.
BTW što kažeš na ovo, umjesto tog što si ti nadrobio koje nema veze s mozgom:
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
int vrijemeUsekundama(string hhmmss)
{
return
atoi(hhmmss.substr(0, 2).c_str())*60*60 +
atoi(hhmmss.substr(2, 2).c_str())*60 +
atoi(hhmmss.substr(4, 2).c_str());
}
Kao prvo, intendancija, ne bi se Bog snašao u tvom kodu, drugo, hajde kompajliraj svoj kod, naravno dodaj main funkciju.
Da li je ovo dobro definirana varijabla?
char tmpChar[30];
Neke varijable "nerade" koje su definirane poslje ove. Ako ih samo prebacim prije rade.
Koristim Dev C++ 4.9.9.2 i Windows 7 x64
Neke varijable "nerade" koje su definirane poslje ove. Ako ih samo prebacim prije rade.
Konkretno, može kod?
Neke varijable "nerade" koje su definirane poslje ove. Ako ih samo prebacim prije rade.
Konkretno, može kod?
Kod je malo poduži, ovo su varijable koje sam mijenjao.
...
string strTmp,baseName="dubrovacka";
vector<int> numbers;
int maxPage,page, intTmp;
int questionNumbers;
char tmpChar[30];
...
Dok je kod izgleo ovako:
...
char tmpChar[30];
string strTmp,baseName="dubrovacka";
vector<int> numbers;
int maxPage,page, intTmp;
int questionNumbers;
...
Prvo pozivanje funkcije u kojoj je argument baseName radi normalno, dok prilikom drugom pozivanja program automatski izgasi. Kad sam string strTmp,baseName="dubrovacka"; zamijenio s prethodnom linijom sve je bilo OK.
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
int vrijemeUsekundama(string hhmmss)
{
return
atoi(hhmmss.substr(0, 2).c_str())*60*60 +
atoi(hhmmss.substr(2, 2).c_str())*60 +
atoi(hhmmss.substr(4, 2).c_str());
}
Evo i još jedan način, "za razmisliti" - bez ikakvih atoi, c_str i sličnih gluposti:
int vrijemeUsekundama2(string hhmmss)
{
return
(hhmmss[5] - '0') + (hhmmss[4] - '0') * 10 +
(hhmmss[3] - '0') * 60 + (hhmmss[2] - '0') * 10 * 60 +
(hhmmss[1] - '0') * 60*60 + (hhmmss[0] - '0') * 10 * 60*60;
}
******************
EDIT - evo još jedan:
int vrijemeUsekundama3(string hhmmss)
{
int faktor[6] = {10*60*60, 60*60, 10*60, 60, 10, 1};
int sekunde = 0;
for (int i = 0; i < 6; i++) sekunde += (hhmmss[i] - '0') * faktor[i];
return sekunde;
}
jel mi moze neko rec sta radi funkcija "getline" ?
jel mi moze neko rec sta radi funkcija "getline" ?
http://www.cplusplus.com/reference/iostream/istream/getline/
Zasto prvo ne pogledas referencu?
jel mi moze neko rec sta radi funkcija "getline" ?
http://www.cplusplus.com/reference/iostream/istream/getline/
Zasto prvo ne pogledas referencu?
ma bas ucim reference pa mi je to uletilo u jednom zadatku za vježbu, nasa sam tu stranicu al sam tia da mi neko domaći obijasni sta radi ta funkcija, ugl vraca liniju koju od nje zahtjevamo da vrati, samo neznam kako bi to iskoristia u zadatku koji radim
Neka korisnik unese podatke poput imena, prezimena, adrese, godina i sličnoga, i onda sve to ispišite. Za unos koristite cin ukoliko unosite jednu riječ. Ukoliko pak unosite više riječi, koristite funkciju getline(cin,vas_string_objekt).
sve mi je jasno samo neznam kako ovo s getline-om da napravim jer nisam nikad prije vidia tu funkciju.
Jesi ti kliknuo na taj link uopce? Pa sve je tamo objasnjeno. Btw, kad sam rekao referencu, mislio sam na reference manual.
jel mi moze neko rec sta radi funkcija "getline" ?
Koliko znam to je metoda klase istream, na objekt cin?
Onaj predhodni program sam rijesio, odlicno radi, hvala vam puno. Danas sam naletio na neki drugi zadatak, evo teksta pa ako moze pomoc oko ove sekvence u zadatku, hvala unaprijed :D!
Sekvenca brojeva se sastoji od jedne jedinice, dvije dvice, tri trice, četiri četvorke, itd.
Napisati program koji sumira elemente sekvence u određenom intervalu(granice intervala su
uključive), te ispisuje ga na izlaz.
Primjer rjesavanja:
Ulaz : 13
Izlaz: 5
Objasnjenje:
U ovom primjeru sumirali su se sljedeći elementi: 1 + 2 + 2 = 5
Koristiš funkciju substring.
Npr. : string sati = str.substr(0,2) i onda to sa funkcijom atoi pretvoriš u integer. in h = atoi(sati);
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int vrijemeUsekundama(string hhmmss){
string sati= hhmmss.substr(0,2);
string minute= hhmmss.substr(2,4);
string sekunde= hhmmss.substr(4,6);
int sati, minute, sekunde;
istringstream ( sati ) >> sati;
istringstream ( minute ) >> minute;
istringstream ( sekunde ) >> sekunde;
int vrijemeusekundama=0;
int h=sati*3600;
int m=minute*60;
int s=sekunde;
return vrijemeusekundama=h+m+s;}
Da li bi ovako trebalo da izgleda funkcija?
Ti to napamet radiš? Kompajliraj svoj kod.
BTW što kažeš na ovo, umjesto tog što si ti nadrobio koje nema veze s mozgom:
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
int vrijemeUsekundama(string hhmmss)
{
return
atoi(hhmmss.substr(0, 2).c_str())*60*60 +
atoi(hhmmss.substr(2, 2).c_str())*60 +
atoi(hhmmss.substr(4, 2).c_str());
}
Rijesio sam kod, i sa svojom nadrobljenom funkcijom xD
Može mi netko objasniti ovu liniju koda?Hvala.
int pomak = ( tmp=='D' ? 1 : -1 );*tmp je varijabla tipa char
Inace se to zove: ternarni operator,
Mozete li mi preporuciti sto poslije ovoga: http://tutoriali.org/C_plus_plus_za_apsolutne_pocetnike.html ??
Nauči engleski.
Pročitaj tutoriale na engleskom...jedno pet puta.
I ne čitaj samo, programiraj ;)
Rijesio sam kod, i sa svojom nadrobljenom funkcijom xD
Ne budi bezobrazan, nego uči, čovjek ti je lijepo pokazao način kako možeš iskoristiti dekadske vrijednosti ascii znakova za izračun te funkcije, to se radi na taj način, a izraz "nadrobiti" je za nepotrebno kompliciranje opravdan. Dakle, pristojno je reći hvala jer ti je pokazao ispravan način rada.
Što se tiče tog drugog zadatka upotrijebi matematiku, dakle, riješi na taj način da kroz petlju računaš kvadrate indeksa petlje.
5 * 5 = 5 + 5 +5 +5 +5
Mozete li mi preporuciti sto poslije ovoga: http://tutoriali.org/C_plus_plus_za_apsolutne_pocetnike.html ??
Da to nije kopija knjige?, mislim nelegalna?
Googlanje, samostalan rad i puno puno vježbe!!!
imate preporuku nekog compilera, u vs expressu mi izbacuje project il nešto out of date, u code blocks nothing to do, u dev cpp isto nešto.
dakle, ne mogu ni hello world sredit.
(mogo bi probat javu, svejedno obožavam minecraft :D)
imate preporuku nekog compilera, u vs expressu mi izbacuje project il nešto out of date, u code blocks nothing to do, u dev cpp isto nešto.
dakle, ne mogu ni hello world sredit.
(mogo bi probat javu, svejedno obožavam minecraft :D)
gcc? Ako su Windowsi u pitanju MinGW.
Mislim da je mislio na IDE?
Mislim da je mislio na IDE?
Otkud da znam, ne citam ja misli, napisal je kompajlera, kompajlere sam mu i naveo.
imate preporuku nekog compilera, u vs expressu mi izbacuje project il nešto out of date, u code blocks nothing to do, u dev cpp isto nešto.
dakle, ne mogu ni hello world sredit.
(mogo bi probat javu, svejedno obožavam minecraft :D)
gcc? Ako su Windowsi u pitanju MinGW.
da, u code blocksu namjestim novi projekt, stavim gnu gcc compiler i stavim kod, lupim gumb, izbaci invalid compiler, isto i sa visual c++ compilerom.
ako odem na empty file bez stvaranja projekta, ništa se ne događa.
eh da, IDE sam neki tražio, sry :D