Forum » Programiranje » napaka v c++
napaka v c++
kretze ::
Zdravo majstri kaj ve kdo zakaj mi ta program ne deluje pravilno??
class gradebook { private: string courseName; int acount; int bcount; int cCount; int dcount; int fcount; public: gradebook(string name) { if (name.length() <= 25) courseName = name; else { courseName = name.substr(0, 25); cout << "name\"" << name << "\ exceeds maximum lenght (25).\n" << "limiting coursename to first 25 charchters.\n" << endl; } acount = 0; bcount = 0; cCount = 0; dcount = 0; fcount = 0; } string getcoursename() { return courseName; } void dipslaymassage() { cout << "welcome to the gradebook for\n" << getcoursename() << "!\n"; } void inputgrades() { int grade; cout << "enter the letter grades" << endl << "enter the EOF charachter to end "; while ((grade = cin.get()) != EOF) { switch (grade) { case 'A': case 'a': ++acount; break; case 'B': case 'b': ++bcount; break; case 'C': case 'c': ++cCount; break; case 'D': case 'd': ++dcount; break; case 'F': case 'f': ++fcount; break; case'\n': case'\t': case' ': default: cout << "incorect letter grade enter " << "enter a new grade "; break; } } } void displaygradereport() { cout << "\n\nNumber of student who recived each letter grade: " << "\nA" << acount << "\nB" << bcount << "\nC" << cCount << "\nD" << dcount << "\nF" << fcount << endl; } }; int main() { gradebook gb("c++ programming "); gb.dipslaymassage(); gb.inputgrades(); gb.displaygradereport();
St753 ::
Bi lahko bil malo bolj specifičen? Kaj ti ne dela? Kje imaš include statemente in zakaj manjka del main funkcije?
kretze ::
int main pa include vse mam kot je treba sem samo kodo skopiral...ja ko vtippkam kako oceno mi vedno piše incorect
St753 ::
Ne vem na kakšen način si ti mislil vnest na tipkovnici EOF? Zamenjaj z drugim veljavnim znakom (poglej si ASCII Chart). Poleg tega cin.get() pričakuje character, tako da nima smisla, da uprabljaš int (pazi tudi pri vnosu številk: 0 != '0'). Naslednji problem je pa v tem, da sprejme cin.get() samo en znak in ko klikneš enter za vnos, gre ta v buffer. Pri naslednjem klicu cin.get() se enter prebere iz bufferja in potem gre to v switch, kjer prideš na default case, zato izpiše incorrect. To lahko preveriš tudi tako, da dodaš cout k enem izmed veljavnih znakov, poleg tega lahko dodaš še case za enter. O vnosu si poglej tukaj: http://www.learncpp.com/cpp-tutorial/5-...
Zate pride v poštev cin.ignore() na koncu while loopa.
Zate pride v poštev cin.ignore() na koncu while loopa.
MrStein ::
Ne vem na kakšen način si ti mislil vnest na tipkovnici EOF?
Verjetno kot ctrl-D (oziroma ctrl-Z na "retard OS").
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
MrStein ::
Poleg tega cin.get() pričakuje character, tako da nima smisla, da uprabljaš int (pazi tudi pri vnosu številk: 0 != '0').
get() vrača int. Torej je tip int smiseln.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Java skeniranje map in podmapOddelek: Programiranje | 1149 (1038) | nightrage |
» | [Java] While zankaOddelek: Programiranje | 2365 (1948) | kunigunda |
» | [C] struct in int[] (strani: 1 2 )Oddelek: Programiranje | 7329 (6402) | MrBrdo |
» | [c] Enaki datotekiOddelek: Programiranje | 1032 (892) | Spura |
» | Vodenje videoteke v C++Oddelek: Programiranje | 1776 (1596) | Tutankhamun |