BLATT   >   Grundlagen   >   C-Library Arbeitsmaterialien  |  Grundlagen  |  ÖH-Wahlen  |  Statistiken  |  Unirecht  
    ▸ Übersichten       ▸ Astronomie       ▸ C-Library       ▸ Digitales       ▸ Mathematik       ▸ Periodensystem
Übersichten
    • Größenvorsätze
    • SI-Basisgrößen
    • abgeleitete Größen
    • Konstanten
    • sonstige Einheiten
    • Greek Chars
    • Einheitskonten
    • Funktionsgrafik
    • Wellenformen
    • Zeichensatz

Astronomie
    • Astrophysik
    • Sonnensystem
    • Sternenklassen

C-Library
    • math.h
    • stdio.h
    • stdlib.h
    • string.h
    • time.h

Digitales
    • Aussagelogik
    • Flip-Flops
    • Decoder

Mathematik
    • Algebra
    • Geometrie
    • Trigonometrie
    • Differenzieren
    • Integrieren

Periodensystem
    • Übersicht
    • alphabetisch
    • Aggregatzustand
    • Metall-Eigenschaft
    • Säure-Eigenschaft

Wörterbücher
C-Library

stdio.h     sscanf     formatierte Daten aus einem String lesen


Format:int sscanf (char * buffer, const char * format [, argument , ...] );
 
Bedeutung:Liest einen Datensatz aus dem angegebenen Puffer und speichert ihn unter argument.
Parameter:buffer: Puffer, aus dem gelesen werden soll
format: String, der einen oder mehrere Daten sätze enthält (siehe Tabelle)
argument: Zeiger auf Objekte oder Strukturen wo das Ergebnis gespeichert werden soll.
Rückgabewert:    Bei Erfolg die Anzahl der Elemente, ansonsten EOF.


Format-Tabelle

Prototype: %[*][width][modifiers]type

*Daten werden gelesen aber ignoriert.
widthMaximale Anzahl an Zeichen, die gelesen werden soll.
modifiersSpezielle Größe für die Daten auf die argument verweist.
h: short int
l: long int (für Integers) und double (für Fließkommazahlen)
L: long double
typeTypen der zu lesenden Daten. (siehe darunter)
 
TypenBedeutung
cliest einzelnes Zeichen
dInteger
e, E, f,
g, G
Fließkommazahl
ooktales Integer
sZeichenkette
uvorzeichenloser Integer
xhexadezimaler Integer


Beispiel:

#include <stdio.h>
int main ()
{
    char satz []="Thomas ist 32 Jahre alt";
    char str [22];
    int i;
    sscanf (satz,"%s %*s %d",str,&i);
    printf ("%s -> %d\n",str,i);
    return 0;
}