2016-06-02 23 views
2

Was ist der Unterschied zwischen LC (C) und c/ls (S) und s in printf() Funktion? Warum gibt die ls (S) -Wandlung -1 zurück?Unterschied zwischen lc und c/ls und s in printf

Exemple:

printf("%C", 'ͳʹ); // -1 
printf("%c", 'ͳʹ); // PRINT 
printf("%S", "ͳ ans T"); // -1 
printf("%s", "ͳ and T"); // PRINT 

auf Mac ..

+0

können Sie Ihre Frage klarer formulieren - nicht sicher, was (C) und (S) –

+0

C für LC darstellen sollen, aber es ist wie S für ls – potheo

+0

Downsoled, weil Frage keinen Code zeigt, der würde einen solchen Wert zurückgeben. Bitte lesen Sie [mcve]. – user694733

Antwort

4

Aus dem Handbuch Seite:

l

(ell) [...] oder einem folgenden c Umwandlung entspricht einem wint_t Argument oder einer folgenden s Umwandlung entspricht einem Zeiger auf wchar_t Argument.

also die Änderung in dem Typ wird erwartet:

  • %c - int, die intern zu unsigned char
  • umgewandelt wird
  • %lc - wint_t
  • %s - Zeiger auf null-terminierte Array von char
  • %ls - Zeiger Null-termini Array von wchar_t

Ein negativen Rückgabewert wie -1 von printf() zeigt an, dass ein Fehler aufgetreten. Es ist schwer, weiter zu bestimmen, da Sie keinen Code zeigen.