Programiranje u C++-u - pitanja i odgovori izdvojena tema

poruka: 7.285
|
čitano: 1.712.037
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

#include <iostream>

int main()
{
    std::string* s = new std::string;
    std::getline(std::cin, *s);
    std::cout << *s;
    delete s;
   
    return 0;
}
i

#include <iostream>

int main()
{
    std::string s;
    std::getline(std::cin, s);
    std::cout << s;

    return 0;
}

 

je u biti ista stvar, ako to pitas.

Perhaps today IS a good day to die. PREPARE FOR RAMMING SPEED!
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Sa razlikom da je prvi pokazivač na dinamički alociran objekt klase string, a drugi je objekt klase string.

Prvi objekt je smješten na heapu, a drugi na stacku. Prvi biva "uništen" tek kad ga oslobodiš pozivom na "delete", a drugi bude uništen čim izađe iz scopea (u ovom slučaju scope mu je ograničen na funkciju main).

What Andy giveth, Bill taketh away.
Poruka je uređivana zadnji put ned 11.8.2013 14:09 (rustweaver).
11 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

A ljudi može li mi tko pomoći???? Program mi preko funkcije nađe kolko koja rečenica ima riječi ali kad to ubacim u sort, u ispisu mi izbaciva samo prvu rečenicu. Jednostavno ne mogu primjetiti grešku ako je tko voljan pomoć.. plizz!!

 

#include <iostream>

#include <stdio.h>

#include <cstring>

using namespace std;

#define MAX 5

int broji_rijeci(char *recenica,int duz);

int main()

{

   int i,j;

   char rec[MAX][256],pom[256];

     for(i=0;i<MAX;i++)

       {

     cout<<"Unesi "<<i+1<<" recenicu: "<<endl;

     fflush(stdin);

     cin.getline(rec[i],256);

}

cout<<endl;

     for(i=0;i<MAX;i++)

     {

   cout<<rec[i]<<endl;

     }

  for(i=0;i<MAX-1;i++)

       {

         for(j=i+1;j<MAX;j++)

           {

               if(broji_rijeci(rec[j],MAX)>broji_rijeci(rec[i],MAX-1));

                 {

              strcpy(pom,rec[i]);

              strcpy(rec[j],rec[i]);

              strcpy(rec[j],pom);

                 }

           }

       }

cout<<endl;

   for(i=0;i<MAX;i++)

     {

   cout<<rec[i]<<endl;

     }

   return 0;

}

int broji_rijeci(char *recenica,int duz){

   int i,razmak=1;

   for(i=0;i<duz;i++)

     {

       while(recenica[i]!='\0'){

       if(recenica[i]==' '||recenica[i]=='\t'){

       razmak++;

       }

     recenica++;

     }

     }return razmak;

}

 
0 1 hvala 0
17 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Jedno pitanje, ako se ne varam, bool se implicitno casta u int kad se radi s ta dva razlicita tipa?

Imam dvije metode, jedna vraca bool, druga int i onda imam situaciju

if ((boolMetoda1() && intMetoda2()) == 0)


Ja bih rekao da se bool implicitno casta u int ako me sjecanje sluzi, jel je?

Perhaps today IS a good day to die. PREPARE FOR RAMMING SPEED!
 
0 0 hvala 0
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

U ovom slučaju bih osobno rekao da se int casta u bool jer ovo u zagradi na kraju mora postati ništa drugo već logički izraz čija je vrijednost true ili false. Povratna vrijednost intMetoda2 bi se trebala pretvoriti u bool te postati true (ako je povratna vrijednost te metode bilo što osim nule) ili false (nula), te bi se u kombinaciji s logičkim "i" (and) trebao na kraju dobiti konačni logički izraz poput:

 

if(true && false) tj. false ili sl.

Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Na tu foru možemo koristiti logičke izraze u izračunima.

 

#include <iostream>
using namespace std;

int main()
{
    int a = 5;
    bool neparni = a % 2;
    cout<< a - neparni << endl;
}

 

Ovdje se izraz a % 2 casta u bool, kod izraza a - neparni, bool neparni se casta u int 1 i  broj a se umanjuje za 1.

Nema šanse ovo učiniti u C#, a C++ dozvoljava i implicitni cast int u bool, i obrnuto radi svog C-ovskog naslijeđa po kojem je 0 laž, a ostali int istina, i pozitivni i negativni.

Poruka je uređivana zadnji put pon 12.8.2013 13:22 (Floki).
 
0 0 hvala 0
17 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
WAYY kaže...

A ljudi može li mi tko pomoći???? Program mi preko funkcije nađe kolko koja rečenica ima riječi ali kad to ubacim u sort, u ispisu mi izbaciva samo prvu rečenicu. Jednostavno ne mogu primjetiti grešku ako je tko voljan pomoć.. plizz!!

 

Taj metod broji_rijeci ti nije dobar, u njega prenosiš pokazivačem pojedinu rečenicu i nema razloga da u njemu radiš sa aritmetikom pokazivača, nego samo odvrtiš rečenicu do kraja i ispitaš je.

A još sredi taj slection sort.

 

 

#include <iostream>
#include <stdio.h>
#include <cstring>
using namespace std;
#define MAX 5
int broji_rijeci(char *recenica);
int main()
{
   int i,j, min;
   char rec[MAX][256],pom[256];
     for(i=0;i<MAX;i++)
       {
     cout<<"Unesi "<<i+1<<" recenicu: "<<endl;
     fflush(stdin);
     cin.getline(rec[i],256);
}
cout<<endl;
  for(i=0;i<MAX-1;i++)
       {
         min = i;
         for(j=i+1;j<MAX;j++)
               if(broji_rijeci(rec[j]) < broji_rijeci(rec[min])) min = j;
                 if (min != i)
             {
              strcpy(pom,rec[min]);
              strcpy(rec[min],rec[i]);
              strcpy(rec[i],pom);
             }
       }
cout<<endl;
   for(i=0;i<MAX;i++)
     {
   cout<<rec[i]<<endl;
     }
   return 0;
}
int broji_rijeci(char *recenica){
   int i= 0,razmak=1;
       while(recenica[i]!='\0'){
       if(recenica[i]==' '||recenica[i]=='\t'){
       razmak++;
       }
      i++;
     }return razmak;
}

 

 

 

Poruka je uređivana zadnji put pon 12.8.2013 15:42 (Floki).
11 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

EE Floki hvala! Znači ja sam u biti pogrijesio u tome sto sam u funkciji opet piso

for(i=0;i<duz;i++)

ali je potrebno samo da se recenica prođe i ništa više, sad kužim!!! 

Poruka je uređivana zadnji put pon 12.8.2013 16:27 (WAYY).
17 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
WAYY kaže...

EE Floki hvala! Znači ja sam u biti pogrijesio u tome sto sam u funkciji opet piso

for(i=0;i<duz;i++)

ali je potrebno samo da se recenica prođe i ništa više, sad kužim!!! 

Ne valja ti ni taj selection sort.

 

#include <iostream>
#include <stdio.h>
#include <cstring>
using namespace std;
#define MAX 5
int broji_rijeci(char *recenica);
int main()
{
    int niz[5] = {5, 1, 2, 1, 3};
    int i, j, pom;
    for(i=0;i<MAX-1;i++)
       {
         for(j=i+1;j<MAX;j++)
           {
               if(niz[j]>niz[i]);
                 {
                pom = niz[i];
                niz[j] = niz[i];
                niz[j] = pom;
                 }
           }
       }
    for(i = 0; i < MAX; i++)
       cout<< niz[i] << " ";
 
}

 

 

Ti ovdje ne vršiš nikakvu zamjenu, nego samo niz[j] pridružuješ niz[i]

 

 

 

 

 

 

 

 

 

 

Poruka je uređivana zadnji put pon 12.8.2013 17:04 (Floki).
11 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Da da.. .. zaboravio sam tada bio na funkciju strcpy.

strcpy(pom,rec[min]);

strcpy(rec[min],rec[i]);
strcpy(rec[i],pom);

 

11 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
rustweaver kaže...
HA-HA-HA-HA kaže...
pa rijec je o textulnom tipu datoteke...

Da, ali ne kužiš da trebaš znati što se i gdje nalazi u toj datoteci kako bi mogao podatke stavljati tamo gdje im je i mjesto?

 

Evo recimo da imaš datoteku piloti.txt u ovom formatu:

ime prezime staž broj_letova
ime prezime staž broj_letova
ime prezime staž broj_letova
...
ime prezime staž broj_letova

 

Onda bi čitanje podataka iz takve datoteke koristeći C++ streamove ja izveo ovako:

#include <iostream>
#include <fstream>
#include <cstring>

using namespace std;

#define BROJ_PILOTA 4

struct piloti
{
    char ime[30];
    int staz;
    int brletova;
};

int main()
{
    piloti p[BROJ_PILOTA]={0};
    ifstream datoteka;

    datoteka.open("piloti.txt");

    for (int n=0; n<BROJ_PILOTA; n++)
    {
        datoteka >> p[n].ime;
       datoteka >> p[n].ime + strlen(p[n].ime) + 1;
        datoteka >> p[n].staz;
        datoteka >> p[n].brletova;

        p[n].ime[strlen(p[n].ime)]=' ';
    }

    datoteka.close();

    for (int n=0; n<BROJ_PILOTA; n++)
        cout << p[n].ime << " " << p[n].staz << " " << p[n].brletova << endl;

    return 0;
}

 

Da se razumijemo ovo tu ti je samo čitanje i ispis pročitanog, nema nikakvog sortiranja ili ručnog unosa...

 

I bilo bi jednostavnije npr. da imaš posebno polje za ime a posebno za prezime, ili da je svaki podatak u datoteci u zasebnoj liniji...

 

EDIT: sad sam se sjetio i još nečega. Imaš li naveden broj pilota ili se od tebe traži da samo čitaš datoteku "dokle ide"?

 

E da pitam zasto ovaj dio koda koji sam označio??

15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
HA-HA-HA-HA kaže...

E da pitam zasto ovaj dio koda koji sam označio??

Kako bi nakačio jedan komad teksta na drugi.

Ako si slab sa pokazivačima, ne znaš što je null terminirani string, i što radi strlen funkcija, onda ti ne mogu jednostavno objasniti. Ali ajde da pokušam sa sličicama:

 

Prvo moramo vidjeti ovaj dio iz strukture:

char ime[30];

 

Dakle polje od 30 znakova koje ćemo koristiti za ime, to si možeš vizualizirati ovako:

Ovi kvadratići predstavljaju pojedine bajtove u memoriji (odnosno pojedine znakove u tvom polju), odnosno pojedine elemente polja, a brojevi iznad njih predstavljaju brojevne indekse svakog elementa. Zamislit ćemo i da plava boja predstavlja elemente u koje nismo ništa zapisali, dakle ne znamo što se u njima nalazi.

 

Idući korak, zamislit ćemo da čitamo tekstualnu datoteku u kojoj se nalaze podatci o samo jednom pilotu i to ovako poslagani:

pero
perić
20
4000

 

Prva linija ime, druga prezime, treća radni staž (u godinama) i četvrta broj letova.

 

Sada ćemo analizirati ovaj dio koda:

datoteka >> p[n].ime;
datoteka >> p[n].ime + strlen(p[n].ime) + 1;
datoteka >> p[n].staz;
datoteka >> p[n].brletova;

p[n].ime[strlen(p[n].ime)]=' ';

 

 

Počinjemo sa prvom linijom to je:

datoteka >> p[n].ime;

 

Jednostavno, u strukturu sa indeksom 'n' učitavamo prvu riječ iz datoteke u polje znakova 'ime'

Sada naše polje znakova izgleda ovako:

Vidimo da se na indeksima 0, 1, 2, i 3 nalaze slova 'p' 'e' 'r' 'o', na indeksu 4 se nalazi takozvani null terminator (bajt sa vrijednošću nula koji označava kraj stringa) koji je obojen u crveno da bi se lijepo primijetio.

 

Sada dolazimo do ove linije:

datoteka >> p[n].ime + strlen(p[n].ime) + 1;

 

Ajmo ovo razbiti u nekoliko dijelova.

Prvo, što radi strlen funkcija? Vraća broj znakova nekog stringa, odnosno broji znakove sve do null terminatora. Kako polje 'ime' sadrži riječ "pero" a ona se sastoji od 4 slova, funkcija strlen će vratiti broj četiri.

 

Zatim broj četiri što smo dobili od strlen funkcije dodajemo na polje 'ime'. Polja se ponašaju kao pokazivači. Pa ako ovom našem polju dodamo broj 4 dobit ćemo memorijsku adresu petog elementa (to jest elementa čiji je indeks 4, jer brojimo od nule) jer ćemo preskočiti 4 bajta od početka.

 

Kao što iz prethodne slike možeš vidjeti element sa indeksom 4 je null terminator. Mi želimo i njega preskočiti (objasnit ću kasnije) pa zato dodajemo još + 1 čime smo dobili memorijsku adresu elementa sa indeksom 5 na koju onda spremamo drugu liniju teksta koju smo pročitali ("perić")

 

Polje znakova sada ima ovakav sadržaj:

Sada naše polje ima 2 null terminatora. To baš i nije dobro, budemo to popravili. Ako se pitaš tko stavlja te null terminatore, odgovor je stream objekti koji čitaju unose sa tipkovnice ili iz datoteke to rade automatski.

 

Iduće dvije linije nisu zanimljive, tu ti je valjda jasno što se događa:

datoteka >> p[n].staz;
datoteka >> p[n].brletova;

 

I sada dolazimo na kraj sa:

p[n].ime[strlen(p[n].ime)]=' ';

 

Ako si pratio prethodne slike i što radi funkcija strlen, onda ti je jasno da smo ovime upravo prvi null terminator (onaj sa indeksom 4) pretvorili u razmak. Kako pitaš se?

 

Rekli smo da strlen funkcija broji sve znakove do null terminatora. E pa u našem slučaju izbrojat će 4 znaka i vratiti broj 4. Što znači da se naš izraz u biti pretvara u ovo:

p[n].ime[4]=' ';

 

Što je na indeksu 4? Null terminator. Stvar riješena. Sada naše polje u memoriji izgleda ovako:

Rekao sam da ću kasnije objasniti zašto smo preskakali prvi null terminator sa onim  "+ 1", e to je zato da bi si ostavili mjesto za razmak koji smo napravili u ovom zadnjem koraku.

 

Nadam se da ti ovo ima nekog smisla, ne znam kako bih drukčije objasnio. Znaš ono kad kažu "hoćeš da ti nacrtam?" :D

What Andy giveth, Bill taketh away.
Poruka je uređivana zadnji put čet 15.8.2013 22:38 (rustweaver).
15 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Pozdrav, imam pitanje.

 

Imam C++Builder XE4, zanima me kako se dizajniraju custom controle?

 

Gledao sam na YouTubeu od Tracera kako pisati ne-vizualne komponente, ali me zanima kako napraviti vizualnu komponentu,

npr neki custom label ili edit box? Da li je moguće ručno dizajnirati kontrolu, znaci razmicanjem sadržaja po nekoj formi ili samo preko koda?

Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
NiGHT_RiDER92 kaže...

Pozdrav, imam pitanje.

 

Imam C++Builder XE4, zanima me kako se dizajniraju custom controle?

 

Gledao sam na YouTubeu od Tracera kako pisati ne-vizualne komponente, ali me zanima kako napraviti vizualnu komponentu,

npr neki custom label ili edit box? Da li je moguće ručno dizajnirati kontrolu, znaci razmicanjem sadržaja po nekoj formi ili samo preko koda?

Čekaj tracera da ti se javi.

Ja ti mogu samo objasniti kako se radi klasična windows custom kontrola (bez ikakvog lijevog frameworka, čisti API), no čini mi se da to ne želiš tako raditi, nego želiš koristeći razne pogodnosti koje C++ builder donosi.

 

Ali sam prilično siguran da te i u C++ builderu čeka kucanje koda. Naime custom kontrole se izrađuju tako da se premosti barem paint handler (a vjerojatno i neki drugi, ovisi o vrsti kontrole). Tako radi GTK, Windows API, FLTK, WxWidgets...

 

A možeš i kombinirati više različitih kontrola u jednu (npr ubaciti button kontrolu u editbox i slično) kao nekakve lego kockice.

What Andy giveth, Bill taketh away.
Poruka je uređivana zadnji put pon 19.8.2013 4:24 (rustweaver).
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
NiGHT_RiDER92 kaže...

Pozdrav, imam pitanje.

 

Imam C++Builder XE4, zanima me kako se dizajniraju custom controle?

 

Gledao sam na YouTubeu od Tracera kako pisati ne-vizualne komponente, ali me zanima kako napraviti vizualnu komponentu,

npr neki custom label ili edit box? Da li je moguće ručno dizajnirati kontrolu, znaci razmicanjem sadržaja po nekoj formi ili samo preko koda?

U C++ Builderu možeš raditi ActiveX i VCL vizualne komponente. Primjerice, ActiveX komponenta sprema se u OCX (dll). Taj dll se registrira i komponenta se može koristiti bilo gdje, dok VCL komponenta se radi spremanjem u VCL package (o tome si mogao vidjeti u mom videu za nevizualnu komponentu.

 

Ako želiš raditi ActiveX komponentu onda možeš pogledati ovaj moj video:

 

Na 1:05-1:30 imaš objašnjeno što treba odabrati za vizualnu komponentu (active form). Tada dobiješ praznu formu u kojoj dizajniraš svoju komponentu. Sve ostalo je isto kao i za COM koji sam u videu objasnio.

 

A ako ćeš raditi VCL vizualnu komponentu to je malo složenije. Prvenstveno ih je pametnije raditi u Delphiju jer onda će ih biti moguće koristiti i u Delphiju i C++ Builderu (jer C++ Builder podržava Delphi code). Ovdje imaš malo detaljnije:

http://delphi.about.com/library/bluc/text/uc080701a.htm

 

ActiveX je malo jednostavniji, no i za njega je potrebno barem minimalno poznavanje rada s sučeljima (intefrace) i metodama.

Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
11 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

rustweaver hvala na ovom iscrpnom objašnjenju..

A da mi je npr trebalo  prezime kao zasebno polje onda ne bi trebalo ovo nis raditi...

 

15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
HA-HA-HA-HA kaže...

A da mi je npr trebalo  prezime kao zasebno polje onda ne bi trebalo ovo nis raditi...

Tako je. Onda bi ime bilo u jednom polju, a prezime u drugom. Pa ne bi bilo potrebe za ovakvim kung-fuom.

What Andy giveth, Bill taketh away.
11 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori
Pozdrav svima.
Za nekih 10 dana imam ispit i dali su nam slican zadatak onome koji ce biti na ispitu.Bila bi zahvalna bar dio zadatka kad bi neko uradio.Ja sam pokusala da ga uradim na 100 nacina ali svaki put mi neki error iskoci.

Date su sljedece strukkture.Dodati funkcionalnosti:
unos novih podataka,prikaz podataka,pretraga po vlasniku(ime i jmbg),po vrsti vozila,datuma vazenja reistracije i po godini proizvodnje.


enum VrstaVozila{PUTNICKO, TERETNO};

struct Datum
{
int _dan,
_mjesec,
_godina;
void Unos();
void Prikazi();
};

struct Vozilo
{
char _regOznaka[10];
char * _markaTip;
int _godinaProizvodnje;
Datum _registrovanDO; //objekat druge strukture
VrstaVozila _vrsta; //enumeracija
void Unos();
void Prikazi();
void Dealociraj();
};

struct Vlasnik
{
char * _imePrezime;
char _JMBG[14];
Datum _datumRodjenja; //objekat druge strukture
//niz od 10 pokazivaca na objekte tipa Vozilo
Vozilo * _vozila[10];
//predpostavimo da po zakonu vlasnik ne smije imati vise od 10 vozila
int _brojacVozila; //brojac nam govori koliko vozila vlasnik posjeduje
void Unos();
void Prikazi();
void DodajVozilo();//dodaje podatke o novom vozilu,onemoguciti dupliranje
void UkloniVozilo();//uklanja vozilo sa liste
Vozilo * GetVozilo(char * regOznaka);//vraca pokazivac na vozilo koje ima //trazenu registarsku oznaku. Ukoliko vozilo ne postoji, funkcija vraca NULL
void Dealociraj();
};
 
0 0 hvala 0
16 godina
offline
Programiranje u C++-u - pitanja i odgovori

Pozdrav, ovo je zad koji me muči

razumin zašto je ovo: int main( int argc, char* argv[] )

al nije mi jasno zašto je argc<3, te kako se onaj dio gdje je argv[0,1,2]

pa ako neko može malo pojasnit mi ili dat link koji to pojašnjuje

 

tekst zadatka je:

Napišite program imena ncopy.c kojim se sadržaj jedne tekstualne datoteke kopira u drugu datoteku,
ali tako da se ispred svake linije zapiše redni broj linije. Ime izvorne i odredišne datoteke zadaje
korisnik u komandnoj liniji.
Primjerice: Ako korisnik otkuca na komandnoj liniji:
ncopy datl.txt dat2.txt
tada treba formirati datoteku dat2.txt koja će imati sadržaj od datl.txt s označenim rednim brojem linije teksta.

 

hvala unaprijed :)

 

#include <iostream>
#include <fstream>
using namespace std;

int main( int argc, char* argv[] ) {
if (argc < 3) {
cout << "Greska... Upotreba: " << argv[0] << " dat1.txt dat2.txt" << endl;
return -1;
}

ifstream ulaz;
ofstream izlaz;

ulaz.open(argv[1]) ;

if (!ulaz.good() || !ulaz.is_open()) {
    cout << "Ne moze se otvoriti ulazna datoteka";
    return -1;
}

izlaz.open(argv[2]) ;
if (!izlaz.good() || !izlaz.is_open()) {
    cout << "Ne moze se otvoriti izlazna datoteka";
    return -1;
}

int iLineCounter = 1;
unsigned char bPrintLnNo = 1;

char c ;
while (ulaz.get(c)) {
   if (bPrintLnNo) {
    izlaz << iLineCounter << ": ";
    bPrintLnNo = 0;
}

izlaz.put(c);

  if (c == '\n') {
    iLineCounter++;
    bPrintLnNo = 1;
}
}
ulaz.close();
izlaz.close();

FJAKA =psihofizicko stanje prilikom teznje ni za cime. Ucestala je greska zamijeniti fjaku s lijenoscu. Za razliku od ove potonje, fjaka je uzviseno stanje uma i tijela kojem tezi cijelo covjecanstvo
Poruka je uređivana zadnji put ned 25.8.2013 0:38 (Makić).
Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Makić kaže...
al nije mi jasno zašto je argc<3

argc će biti manji od 3 ako programu proslijediš samo jedan (ili nijedan) argument. Pitanje je sada znaš li pokrenuti program sa argumentima? Pretpostavljam da znaš zato što si napisao šablonu za pokretanje programa u slučaju da je argc manji od 3.

 

Ako ipak ne znaš, onda možeš na slikama dolje vidjeti kako se to radi putem konzole. Tvoj IDE također vjerojatno ima mogućnost postavljanja argumenata programu (ali ti to ne mogu reći napamet), a možeš koristiti i run prozor (win + r) ali tada moraš znati punu putanju do datoteke i koristiti navodnike za putanju ako ona sadrži razmake.

 

Makić kaže...

te kako se onaj dio gdje je argc[0,1,2]

Ovo nema nikakvog smisla. "kako se" što?

 

Stvar je jednostavna da ne može biti jednostavnija. Funkcija main prima 2 argumenta. Prvi je argc i on je cijeli broj. Ta varijabla ti govori koliko je argumenata proslijeđeno tvojem programu (odnosno duljinu polja argv).

 

Varijabla argv je polje pokazivača od kojih svaki pokazuje na jedan string. Svaki od tih stringova predstavlja jedan argument iz komandne linije koji je proslijeđen tvom programu, s time da je prvi od njih (argv[0]) uvijek komanda kojom je pokrenut tvoj program, što znači da argc nikad ne može biti 0.

 

Znači:

argv[0] - komanda/ime programa

argv[1] - prvi argument

argv[2] - drugi argument

argv[3] - treći argument

...

itd

 

Evo ti jedan programčić za demonstraciju. Program ispisuje sve argumente:

#include <stdio.h>

int main(int argc, char *argv[])
{
    int n;
    for (n = 0; n < argc; n++)
        printf("%s\n", argv[n]);
   
    return 0;
}

 

Dakle ako zamislimo da se taj program zove mojprogram.exe i da smo ga pokrenuli sa ovakvim argumentima:

argc i argv će izgledati ovako:

Te ćemo dobiti ovakav ispis:

 

What Andy giveth, Bill taketh away.
Poruka je uređivana zadnji put ned 25.8.2013 0:02 (rustweaver).
16 godina
offline
Programiranje u C++-u - pitanja i odgovori

Hvala, vrtia san se malo po netu, pa sam i sam doša do odg, al ovo je kraće i lipo objašnjeno, svakako hvala još jednom :)

FJAKA =psihofizicko stanje prilikom teznje ni za cime. Ucestala je greska zamijeniti fjaku s lijenoscu. Za razliku od ove potonje, fjaka je uzviseno stanje uma i tijela kojem tezi cijelo covjecanstvo
Moj PC  
1 0 hvala 0
13 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Ispričavam se unaprijed, možda ovo nije tema za moj problem

Znači nedavno sam instalirao Windows 8, i od kada imam 8 Dev C++ mi javlja problem kod compileanja, znači kada probam nešto compileati mi izbaci "g++ has stopped working".

Zna li netko u čemu je problem i kako ga riješiti, inače radi se o laptopu navedenom pod "Moj PC".

Hvala unaprijed.

Poruka je uređivana zadnji put ned 1.9.2013 12:24 (mxselotejp).
Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

http://sourceforge.net/projects/orwelldevcpp/files/Setup%20Releases/

Prva datoteka na listi je za 64 bitni OS, druga je za 32 bitni...

 

Iz nekog razloga stari MinGW 3.4.2 više ne radi na win8

What Andy giveth, Bill taketh away.
Poruka je uređivana zadnji put ned 1.9.2013 12:36 (rustweaver).
13 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Hvala, ali nije mi jasno kako mojem frendu koji isto ima HP Pavilion g6 i Win8 radi normalno.

Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
mxselotejp kaže...

Hvala, ali nije mi jasno kako mojem frendu koji isto ima HP Pavilion g6 i Win8 radi normalno.

Hardver s time nema veze, softver ima. Win8 nemam i nemam pojma što ti uzrokuje rušenje programa. Možda bi pokretanje sa administratorskim pravima riješilo problem, a možda i ne bi. Možda neki compatibility modovi...

 

Ako te to muči uzmi on demand asm debugger (ollydbg) i gledaj gdje dođe do rušenja, šansa je da nećeš razumjeti ništa jer mi ne djeluješ kao netko tko se dobro snalazi sa tim stvarima. NHF...

What Andy giveth, Bill taketh away.
13 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Ma dobro je sad, znam da hardver nema veze s tim, nov sam u programiranju.

Moj PC  
0 0 hvala 0
12 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Pozdrav svima zamolila bih vas ako bi mi pomogli objasniti ovaj kod detaljno. Naime radi se o igrici minesweeper http://speedy.sh/Yugmb/PROGRAMIRANJE-2-SEMINAR.doc Hvla vam unaprijed!

 
0 0 hvala 0
12 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Pozdrav jos jednom javljam se u vezi onog prethodnog pitanja vec sam radila slican projekt dakle igricu ovu http://speedy.sh/fbNbk/seminar-IGRA-VJESALA.cpp gdje je sve objasnjeno ali s ovom drugom minesweeper imam problema s objasnjenjima pa ako itko moze pomoci bila bih vam jako zahvalna!

 
0 0 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Informaticarka kaže...

Pozdrav svima zamolila bih vas ako bi mi pomogli objasniti ovaj kod detaljno. Naime radi se o igrici minesweeper http://speedy.sh/Yugmb/PROGRAMIRANJE-2-SEMINAR.doc Hvla vam unaprijed!

Daj pliz to stavi na neki host koji ne forsira neke svoje download managere. Odbijam pokretati izvršne datoteke nekih lijevih stranica...

What Andy giveth, Bill taketh away.
15 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Pozdrav, evo mene opet,

 

malo sam nešto proučavao i nikako da skuzim kako se u C++ Builderu ugrađuje web kontrola (npr. gecko ili webkit engine) , a da to nije standardna web browser kontrola (IE engine)?

Moj PC  
0 0 hvala 0
E-mail:
Lozinka:
 
vrh stranice