Zdarec, mel bych mensi dotaz, jestli nekdo nevi, jak zjistit, jestli uzivatel zadal cislo(pomoci cin >> promena). Neco jako if(promenna == cislo){ blalba; }
D?ky moc!
Fórum › C / C++
Cislo?
Al napsal:
Zdarec, mel bych mensi dotaz, jestli nekdo nevi, jak zjistit, jestli uzivatel zadal cislo(pomoci cin >> promena). Neco jako if(promenna == cislo){ blalba; }
Díky moc!
Objekt cin ma tu vlastnost, ze v pripade kdy je na vstupu ocekavano cislo a predate mu cokoliv jineho, tak se nastavi jeho failbit. A jelikoz ma trida istream zdedeny operator ! a void*, tak ho lze testovat pouhym:
if(!(std::cin >> num)){
std::cerr << "Nebylo vlozeno cislo!!!!";
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), 'n');
}
?
Pise mi to chyby u
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), 'n');
??
--------------------Configuration: blind - Win32 Debug--------------------
Compiling...
blind.cpp
C:Documents and SettingsAlanDokumentycblindblind.cpp(128) : error C2039: 'numeric_limits' : is not a member of 'std'
C:Documents and SettingsAlanDokumentycblindblind.cpp(128) : error C2065: 'numeric_limits' : undeclared identifier
C:Documents and SettingsAlanDokumentycblindblind.cpp(128) : error C2275: 'std::streamsize' : illegal use of this type as an expression
C:Documents and SettingsAlanDokumentycblindblind.cpp(128) : error C2039: 'max' : is not a member of '`global namespace''
C:Documents and SettingsAlanDokumentycblindblind.cpp(128) : error C2065: 'max' : undeclared identifier
Error executing cl.exe.
blind.exe - 5 error(s), 0 warning(s)
???:((?No, nevim, ja MS VC nevlastnim, takze nemuzu rict co presne je spatne, ale v Dev-C++ mi to funguje bez problemu:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int num;
if(!(std::cin >> num)){
std::cerr << "Nebylo vlozeno cislo!!!!" << std::endl;
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), 'n');
}
else
cout << num;
system("PAUSE");
return EXIT_SUCCESS;
}
Ale patrne vam tam chybi nejaky header - zkuste includovat <limits>?
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 20 hostů
Podobná vlákna
Celé číslo / desatinné číslo — založil Eddy777
Hexadecimální číslo — založil Divisor
Náhodné číslo — založil Jakub Vojáček
Komplexní číslo — založil Adam
Moderátoři diskuze