Zum Inhalt springen

Was heißt %s?


Ganymed

Empfohlene Beiträge

Hallo zusammen,

ich habe hier ein Stück Quellcode bekommen, von dem ich nicht wirklich weiß, ob es C++ ist.

Jedenfalls gibt es dort Variablen, die wiefolgt heissen:

z.B.

CString ActState("");

und mehere SQL-Statements, die so aussehen:

sql.Sprintf("select ID from Artikel where ID = %s", ActJobID.Get());

Was ist denn %s?

Es ist nirgends deklariert oder dergleichen. Ich weiß zwar jetzt, was da für Werte drinnestehen (mit Hilfe eines Logfiles), aber woher das kommt, weiss ich nicht.

Per google hab ich die meisten Treffer für "%s" C++ bekommen.

Von daher denke ich, dass ich hier richtig bin.

Es ist zwar öfters benutzt worden, aber nigens erklärt was dieses "%s" eigentlich ist.

Gruß

Ganymed

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Angaben in dieser Tabelle basieren auf der Annahme, daß in der Formatieranweisungkeine Flag-Zeichen, Breitenangaben, Präzisionsangaben oder Größenmodifizierer enthalten waren

Hinweis: Bestimmte Konventionen begleiten einige dieser Formatieranweisungen.

Typzeichen Erwartete Eingabe Ausgabeformat

Numerische Werte

d Integer signed int (dezimal)

i Integer signed int (dezimal)

o Integer unsigned int (oktal)

u Integer unsigned int (dezimal)

x Integer unsigned int (hexadezimal), Buchstaben a bis f

X Integer unsigned int (hexadezimal), Buchstaben A bis F

f Gleitkomma vorzeichenbehafteter Wert der Form [-]dddd.dddd.

e Gleitkomma vorzeichenbehafteter Wert der Form [-]d.dddd oder e[+/-]ddd

g Gleitkomma vorzeichenbehafteter Wert im e- oder f-Format. Präzision gibt die Anzahl signifikanter Ziffern an.

Abschließende Nullen und Dezimalpunkt werden nur ausgegeben, wenn es nötig ist.

E Gleitkomma dasselbe Format wie e, aber mit dem Zeichen E für den Exponenten

G Gleitkomma dasselbe Format wie e, aber mit dem Zeichen E für den Exponenten, wenn das Format e verwendet wird.

Zeichen

c Zeichen einzelnes Zeichen

s String-Zeiger Ausgabe bis zu einem NULL-Zeichen oder dem Erreichen der durch Präzision vorgegebenen Zeichenzahl

% (nichts) Ausgabe des Zeichens %

Zeiger

n Zeiger auf int Speichert an der Position, auf die das Eingabeargument zeigt, die Anzahl der bis jetzt ausgegebenen Zeichen.

p Zeiger Gibt das Eingabeargument als Zeiger in hexadezimaler Form aus (near-Zeiger als YYYY, far-Zeiger als XXXX:YYYY).

Unendlich große positive oder negative Gleitkommazahlen werden als +INF bzw. als -INF ausgegeben.

Eine "IEEE-Nichtzahl" wird als +NAN oder -NAN (Not-A-Number ) angegeben.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Deine Frage kann man ohne weitere Informationen nicht beantworten. Die hier zitierten Formatangaben beziehen sich auf sprintf, eine Funktion aus der C-Standardbibliothek. Du benutzt eine Funktion Sprintf, eine Memberfuntion der Klasse, von der die Variable sql in deinem Code eine Instanz ist.

Es ist zwar naheliegend, dass sich diese Funktion ähnlich verhält wie sprintf aus der Standardbibliothek, aber das ist nicht sicher.

Du sagst, dass du jetzt keine Fehlermeldungen mehr bekommst. Hast du vorher welche bekommen?

Wie heißt der Typ von sql? Hast du vielleicht eine Dokumentation der Sprintf-Funktion?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

danke für die Ganzen Antworten.

Das Problem hab ich jetzt gelöst *freu*

Das Problem mit dem genauen Posten liegt darin, dass ich Quellcode in einer Anwendung einfüge und das Resultat erst in QuarkXPRess anschauen kann. Einen C++ Compiler habe ich nämlich nicht --> auch keine C++ Fehlermeldung.

Ich bekomme halt nur Fehler von Quark aus.

Aber durch ein paar Logfiles konnte ich herausfinden, dass ich die Prozedur, die hinter dem Statement steht einfach nochmal aufrufen muss; für jedes %s möchte er nämlich einen Funktionsaufruf haben.

Durch die Umkonvertierung nach %d bin ich aber erst auf die Lösung gekommen :)

Danke schön!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...