Ignorieren Whitespaces in scanf-Format

stimmen
-1

Ich las Eingang mit scanfin bestimmtem Format:

scanf(<%d;%d>%c, &lo, &hi, &op);

Dies nimmt eine Schnur wie <1;10>k. Dies funktioniert , wenn ich geben Sie genau in dieser Syntax, aber es funktioniert nicht mit Leerzeichen, so zB das wird nicht funktionieren:

    <      1 ;
3 >      
 k

Also , wie kann ich scanfdiese Leerzeichen ignorieren?

Veröffentlicht am 07/11/2018 um 23:39
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
4

Setzen Sie Leerzeichen vor den wörtlichen Zeichen im Formatstring für scanf(). Sie nicht wirklich brauchen Räume , bevor die meisten %Konvertierungsspezifikationen ( %c, %nund %[…]sind die Ausnahmen, sie nicht überspringen Leerraum), aber sie können für Symmetrie auch dort sein (sie nicht schaden). Daher:

if (scanf(" < %d ; %d > %c", &lo, &hi, &op) == 3)
    …all OK — at least, three values were read OK…

Wenn Sie einen wurden passende %Symbol in der Eingabe, dann würden Sie verwenden %%im Format - String; das wird überspringen Leerraum führt zu.

Beantwortet am 08/11/2018 um 00:52
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more