while (cin >> x) // C++

Programovacie jazyky, rady, poradňa...
Fata! ChaoS
Star
Star
Používateľov profilový obrázok
Príspevky: 650
Registrovaný: 12 apr 2006, 20:23
Bydlisko: Tvrdošovce
Kontaktovať používateľa:

while (cin >> x) // C++

Príspevok od používateľa Fata! ChaoS »

V jednej literatúre mám takýto program

Kód: Vybrať všetko

#include <iomanip>
#include <ios>
#include <iostream>
#include <string>
using namespace std;

int main()
{
   cout << "Zadaj svoje znamky polrocneho testu a zaverecneho testu: ";
   double polovina, zaver;
   cin >> polovina >> zaver;
   
   cout << "Zadaj znamky domacih uloh nasledovane koncom suboru: ";
   int pocet = 0;
   double sucet = 0;
   double x;
   while (cin >> x){
         ++pocet;
         sucet += x;
   }
   
   streamsize presnost = cout.precision();
   cout << "Tvoja zaverecna znamka je " << setprecision(3) 
        << 0.2 * polovina + 0.4 * sucet + 0.4 * sucet / pocet
        << setprecision(presnost) << endl;

   cin.get();
   cin.get();
   return 0;
}
Zaujíma ma len toto

Kód: Vybrať všetko

while (cin >> x){
         ++pocet;
         sucet += x;
}
Lebo to nechápem, ono to v tej literatúre píšu, že by to malo pýtaj toľko známok koĺko chce, lenže sa to nedá ukončiť, ak dám biely znak pokračuje to a stále sa pýta na ďalšiu známku a ak dám nevyhojúci znak pre premmennú tak sa program zrúti, tak ako treba ukoncit to aby sa už nepýtal na známky?
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

V tom programe sa ti to aj vypisuje "Zadaj znamky domacih uloh nasledovane koncom suboru: " (koniec súboru je vo Windowse znak Ctrl+Z a v Unixe znak Ctrl+D).
Fata! ChaoS
Star
Star
Používateľov profilový obrázok
Príspevky: 650
Registrovaný: 12 apr 2006, 20:23
Bydlisko: Tvrdošovce
Kontaktovať používateľa:

Príspevok od používateľa Fata! ChaoS »

jaj :oops: aj to tam písali sakra, sorrz za spam
Fata! ChaoS
Star
Star
Používateľov profilový obrázok
Príspevky: 650
Registrovaný: 12 apr 2006, 20:23
Bydlisko: Tvrdošovce
Kontaktovať používateľa:

Príspevok od používateľa Fata! ChaoS »

No keď dám CTRL + Z, tak sa mi zobrazí ^Z a keď dám enter tak sa program vypne a nepokračuje, hmm?
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Vo Windowse som to neskúšal, ale v Linuxe funguje Ctrl+D normálne.
tuti
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 740
Registrovaný: 01 okt 2006, 19:23
Bydlisko: Prievidza

Príspevok od používateľa tuti »

CTRL+Z musi byt na zaciatku riadku a potom nemusis davat enter cize:

<enter>Ctrl+Z

inak neviem v com by mohol byt problem
Fata! ChaoS
Star
Star
Používateľov profilový obrázok
Príspevky: 650
Registrovaný: 12 apr 2006, 20:23
Bydlisko: Tvrdošovce
Kontaktovať používateľa:

Príspevok od používateľa Fata! ChaoS »

No neviem prečo, ale nefunguje to a takto neviem spraviť daké úlohy, no ešte sa skúsim spýtať nášho výpočtára, že kde robím chybu.
Napísať odpoveď