Zitat von
wacked
Ok ja ich hätte wenigstens versuchen können das rauszufinden, aber cppreference ist ein bisschen wie die man pages: Um etwas komplett neues herauszufinden sind die ungeignet, die sind nur als Nachlagwerk top.
Dafür gibt es Google
Ähm kann ich jetzt nicht reproduzieren:
Code:
$ cat s3rb31.cpp
#include <iostream>
#include <string>
int main() {
int a;
std::string b, c;
std::cin >> a >> b;
std::cin >> c;
std::cout << a << ',' << b << ',' << c << '\n';
}
$ g++ -o x s3rb31.cpp
$ ./x
a b c
0,,
Hast du meinen Beispielcode gelesen? Wenn du nicht abfragst ob da ein Fehler passiert ist und das Failbit clearest, kann es ja auch nicht klappen.
Code:
#include <string>
#include <iostream>
bool check_input()
{
if(std::cin.fail())
{
std::cin.clear();
return false;
}
return true;
}
int main()
{
int a;
std::string b, c;
std::cin >> a >> b >> c;
if (!check_input())
{
std::cin >> b >> c;
std::cout << "Zahl ungültig. " << b << ',' << c << std::endl;
return 1;
}
std::cout << a << ',' << b << ',' << c << std::endl;
return 0;
}
[18:40:13] s3rb31@archbase:~ $ ./a.out
a b c
Zahl ungültig. a,b
[18:40:16] s3rb31@archbase:~ $ ./a.out
1 a b
1,a,b
[18:40:25] s3rb31@archbase:~ $ ./a.out
0s 123 a
0,s,123