Ich versuche, sscanf in C zu verwenden, um einige Werte aus einer Zeichenfolge zu erhalten. Wenn die Zeichenfolge jedoch mehr Werte hat, als ich möchte, muss ich einen Fehler ausgeben. dh. Wenn ich eine Ganzzahl haben möchte, sollte "2" ok sein, aber "2 5" sollte abstürzen.C: sscanf Zuweisung Unterdrückung und der Rückgabewert
nun mit dem Rückgabewert auf sscanf wie so:
if (sscanf(mystring, "%d %*s", &num) == 1)
nicht funktioniert, weil es 1 auch wenn der String länger zurückkehren würde ist. Ich kann dies tun:
char tmpString [100];
if (sscanf(mystring, "%d %s", &num, tmpString) == 1)
was gut funktioniert, aber es ist nicht besonders schön. Gibt es eine andere Art und Weise? Kann ich die Zuordnungsunterdrückung verwenden und trotzdem den gewünschten Rückgabewert erhalten? Diese
bearbeiten ist der Code, den ich verwendet habe:
char c; // This is a global variable, just gets used over and over.
sscanf(mystring, "%d%c", &num, &c);
if (c == '\n') {
Normalerweise mache ich: 'char c; if (sscanf (meinstring, "% d% c", & num, & char) == 1) ' –
Nun, wenn Sie nur wollen, dass es abstürzt, können Sie verwenden: ' sscanf (mystring, "% d% d", & num1 , &num2); '(= – dcow
Dank Jared. Der gleiche Code wie ich, aber effizienter mit nur einem Char. Funktioniert gut. – morgoe