Miért nem működik C++ -ban a std::cin. Get () és a system ("pause")?
Nem mindig működik az a két parancs amikkel várakoztatni lehet a futást, ami nem is lenne baj ha csak én használnám, de egy egész osztálynak van megosztva gyakorlatilag, és panasz jött hogy futás után bezárul a program. Használom a std::cin.get() és a system("pause") parancsokat is, néha a kettőt egyszerre, de nem jó. Mi lehet a baj?
IDE: C-free 5 (crackelt)
Op.rendszer: Win XP 32 bit
A program forráskódja:
#include <iostream>
int hatv(int alap, int kitevo)
{
int szam=1;
for (int seged=0;seged<kitevo;seged++)
{
szam*=alap;
}
return szam;
}
int main(int argc,char* argv[])
{
int al;
int kit;
std::cout<<"Alap=";
std::cin>>al;
std::cout<<"\n";
std::cout<<"Kitevo=";
std::cin>>kit;
std::cout<<"\n";
std::cout<<"Ertek="<<hatv(al,kit)<<std::endl;
system("pause");
std::cin.get();
return 0;
}
Nem valami elegáns a system ("pause"), a háttérbe mi is történik ekkor ...
A std::cin.get(); ez már szabványos. Egy entert (üres sort) eleve tartalmaz a billetnyűzet puffer.
Elvileg így jónak kell lennie:
std::cin.ignore(); // ignores the newline
std::cin.get(); //waits for character
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!