Forum » Programiranje » c++ problem
c++ problem
__jack__ ::
Naletel sem na sledeč problem
V DEV-C++ sem napisal na tak način igrico obešenec, v Visual Studio pa 4. vrstica javi napako.
Kaj je problem pri 4. vrstici, da v Visualu ne dela?
V DEV-C++ sem napisal na tak način igrico obešenec, v Visual Studio pa 4. vrstica javi napako.
string a; string b; cin >> b; a[3]=b[3]; cout << a[3];
Kaj je problem pri 4. vrstici, da v Visualu ne dela?
- spremenil: __jack__ ()
mn ::
V tvojem primeru je std::string a dolg tocno 0 znakov, ti pa pises na cetrto mesto v praznem stringu. S tem si naredil Buffer Overflow! Tvoj prevajalnik ocitno to preverja in javi napako. Na gcc-ju recimo se takoda normalno prevede in izvede, kar pa se ne pomeni, da je pravilna!
Pa se mimogrede, drugic vsaj se napisi kaksno napako ti javi!
Aja, pa se nekaj. Problem je tudi v b[3], ker zopet beres cetrti znak iz stringa, ki je lahko krajsi kot 4 znake!
Pa se mimogrede, drugic vsaj se napisi kaksno napako ti javi!
Aja, pa se nekaj. Problem je tudi v b[3], ker zopet beres cetrti znak iz stringa, ki je lahko krajsi kot 4 znake!
mn ::
Naceloma, ja. Ampak ne razumem kaj zelis doseci. Koda spodaj bi morala delat, ampak tole kar je napisano je zelo dalec od lepega programiranja!
string a = " "; string b; cin >> b; if(b.size()>=4){ a[3]=b[3]; cout << a[3]; }
__jack__ ::
No, kako pa bi potem napravil to, da v main pride nek string, za katerega se ne ve kako dolg je. Nato pa se z for zanko popiše en drug string s samimi podčrtaji, vendar enake dolžine kot string št. 1. Tako sem namreč napravil obešenca.
Npr
Nato pa se preverja, spet v for zanki, če je uporabnik vnesel ustrezno črko in se potem v string b vpisujejo elementi, ki so v stringu a... itd.
Zgornji program je namreč nemogoče napisat v Visual studio. Torej, kaj bi lahko spremenil?
Npr
string a="jabolko"; string b; int k; k=a.size(); for(int i=0;i<k;i++) { b[i]='_'; }
Nato pa se preverja, spet v for zanki, če je uporabnik vnesel ustrezno črko in se potem v string b vpisujejo elementi, ki so v stringu a... itd.
Zgornji program je namreč nemogoče napisat v Visual studio. Torej, kaj bi lahko spremenil?
redo ::
Tvoje je preprosto narobe. Imaš pač srečo, da ti prevajalnik varuje hrbet.
string a="jabolko"; string b(a.size(),'_');
__jack__ ::
Evo, ta koda se normalno prevede, ampak vseeno, kaj v njej ni "lepo" in kako bi se dala spremeniti.
string a="jabolko"; int dol; int stev; int pon=8; int k=0; dol=a.size(); string b (dol,'_'); b[0]=a[0]; b[(dol-1)]=a[(dol-1)]; stev=dol-2; while(1) { cout << "beseda je: "; for(int i=0;i<(dol);i++) { cout << b[i] << " "; } cout << "\nimate se: " << pon << " ponovitev"; cout << "\nvnesite crko: "; char znak; cin >> znak; cout << endl; for(int i=1;i<(dol-1);i++) { if(znak==a[i]) { b[i]=a[i]; stev--; k=1; } } if(k==0) { pon--; } if(pon==0) { cout << "\nobeseni ste!!\n"; break; } if(stev==0) break; } cout << "\n\nbeseda je bila: " << a; char f; cin >> f; return 0; }
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | rabim pomoc naloga c++Oddelek: Programiranje | 710 (578) | kretze |
» | Funkcije in prenos po referenciOddelek: Programiranje | 1834 (1540) | xordie |
» | Microsoft visual C++ pozabo kako zacet (strani: 1 2 )Oddelek: Programiranje | 4435 (2744) | bisernik |
» | Se komu da napisat en preprost program v C++!Oddelek: Programiranje | 1313 (1073) | alum |
» | C++ in igranje mp3-jaOddelek: Programiranje | 1549 (1224) | BigWhale |