Mit scanf ist es, in der Regel eine direkte Art und Weise formatierte Eingabe zu nehmen:Was ist der CIN-Analogwert der scanf-formatierten Eingabe?
1) Linie mit einer reellen Zahl größer als 0 und kleiner als 1 ist auf ‚x‘ enden, zB: 0.32432523x
scanf("0.%[0-9]x", &number);
2) Linie stellt eine Ergänzung im Format : 30 + 28 = achtundfünfzig
scanf(":%d+%d=%99s", &number1, &number2, &total);
Was die cin Lösung ist, nur den Ständer mit ard Bibliothek?
Nirgendwo * in der Nähe von * so hübsch ... 'scanf' wirklich mächtig ist. Persönlich lese ich in eine "Zeichenfolge", greife den Zeiger über 'string :: c_str()' und dann 'scanf' es. Oder ich tokeniere es selbst aus einem 'stringstream' oder was auch immer. – paddy
Für formatierte Eingaben wie diese in C++ sollten Sie etwas wie [Boost Spirit] (http://boost-spirit.com/home/) betrachten. Es mag übertrieben sein, aber es ist sauberer als direkt mit Iostreams. –
scanf gewinnt den Gewinn, weil es Ihnen gleichzeitig einen Rückgabewert liefert, den Sie an einer Stelle überprüfen können, um zu überprüfen, ob alles übereinstimmt. Im Cinestream müssten Sie ein paar Dinge "manuell" überprüfen. – doug65536