sprintf() ohne stdio.h



  • ich hab hier ein kleines progrämmchen zu schrieben in dem ich aus einigen variablen (uchar und uint) einen c-string machen will.

    char text[20];
    unsigned int Data[2];
    myprintf(text, "%d, %d",Data[0], Data[1]);
    ...
    

    das problem ist das mir dabei die bibliothek nicht zur verfügung steht, hat eventuell jemand was auf halde was mir helfen kann ?

    (es geht um einen asuro roboter mit der winzigen AVR bibliothek)

    eigentlich würde es schon reichen wenn ich nur einen methode hätte mit der ich einfach eine zahl "ausschrieben" kann.

    (Theoretisch könnt ich die werte direkt senden und am PC auswerten, cih möchte aber nicht erst ein Programm schreiben sondern lieber gleich mit dem HyperTerminal kommunizieren, iss einfach mal einfacher :p)



  • Wenn du nur int-Werte darstellen willst, kannst du die auch in Ziffern zerlegen und in einer Schleife ausgeben.



  • ja deswegen hab ich halt gefragt ob was "auf halde" hast XD

    werd ich mir nachher mal n kopp machen wenn ich wieder daheim bin

    :p

    EDIT: ausserdem bin ich immer n querkopf was so kleine sachen angeht es muss halt alles immer failsafe bis zum getno sein und dann mach ichs wieder komplizierter als es sein muss ... ich sag nur "variable datenpakete via TCP mit checksum" usw.



  • Ceos schrieb:

    eigentlich würde es schon reichen wenn ich nur einen methode hätte mit der ich einfach eine zahl "ausschrieben" kann.

    guckst du: http://www.c-plusplus.net/forum/viewtopic-var-t-is-197116
    base==10 gibt zahlen im zehnersystem aus, base==16 als hex, 2 als binär usw...
    🙂



  • joa ok , danke jedenfalls _



  • Um sich langfristig von der Abhängigkeit der libc zu lösen kann ich für solche Aufgaben nur die libowfat (http://www.fefe.de/libowfat/) empfehlen.



  • gleich mal reinschnuppern, danke

    sry also ich werd grad nich schlau, wie soll mir das jetzt genau helfen ?

    (es geht um einen asuro roboter mit der winzigen AVR bibliothek)

    irgendwie find ich nicht den zusammenhang zwischen deinem link und meinem problem an dieser stelle



  • vielleicht meinte er das? --> http://www.fefe.de/dietlibc/
    🙂



  • buffer_put_ulong(buffer_1, data[0]); gibt eine Zahl formatiert auf stdout aus, und das ohne libc.



  • ist den herren schon aufgefallen das so ein kleiner asuro (das ist ein kleiner programmierbarer Roboter) keinen stdout hat ?!
    by the way die avr bibiothek bietet eine wahrlich aufzählbare anzahl von befehlen an und der compiler würde (selbst wenn ich die c biblitheken einbinde) es nicht freiwillig übersetzen, da er schwer beschränkt ist ... ich danke jedenfalls allen die hier geschrieben haben

    bitte schliesst das Thema eh das hier noch mehr offtopic ausartet



  • Entschuldige, hab ich überlesen.

    ... dann eben so:

    char buf[LEN];
    
    buf[fmt_xlong(buf,dein_int_oder_char_var)]=0;
    

    😃

    Gruss



  • danke, das klingt schonmal efefktiver .... mal schauen ob der compiler mit der lib klarkommt ... aber erstmal sind noch 3 andere projekte fällig eh ich mir wieder darüber geda nken machen kann


Anmelden zum Antworten