Forum: Mikrocontroller und Digitale Elektronik C Integer to Strig


von Oliver K. (ollik)


Lesenswert?

Hallo,

ich verwende MikroC for PIC für den PIC16f1823 und versuche einen 
Integer in einen String zu wandeln, um ihn via UART senden zu können. 
Alles was ich so gefunden habe sind die Funktionen "sprintf" und "itoa" 
diese funktionieren bei mir aber nicht, da er sie nicht kennt.

Ich versuche es wie folgt:
1
char buffer[10];
2
int n;
3
int value = 546; //Testwert
4
5
void main(){
6
    n = sprintf(buffer, "%d", value);
7
}

nur kennt er die Funktion sprintf nicht...

von Karl H. (kbuchegg)


Lesenswert?

Oliver K. schrieb:

> Alles was ich so gefunden habe sind die Funktionen "sprintf" und "itoa"
> diese funktionieren bei mir aber nicht, da er sie nicht kennt.

du musst aber auch den richtigen Header File inkludieren!
1
#include <stdio.h>
2
3
...

wenn 'er es dann immer noch nicht kennt', dann poste mal die korrekte 
Fehlermeldung.

von MBr (Gast)


Lesenswert?

Hallo Oliver,

ich denke Du solltest sprintf anders verwenden. Es "genügt" wenn man
char buffer[10];
int value = 546; //Testwert


void main(){
    sprintf(buffer, "%i", value);
}

schreibt, dann ist in buffer der Integer Wert enthalten.

von Oliver K. (ollik)


Lesenswert?

Habe ich schon probiert das ich stdio.h includiere, aber das 
funktioniert nicht da bekomme ich immer diese Fehlermeldung: 
"C:/Projektpfad/file.c:4:error: Can't open include file "stdi...  "

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Und itoa ist in <stdlib.h> ;)
Ansonsten schreibt man sich nen itoa selber.
Falls interesse besteht:
Code hätte ich noch aus der Uni, weil wir da itoa nicht verwenden 
durften bei nem Projekt.

von Arc N. (arc)


Lesenswert?

"sprintf function is not supported for p12 and p16 PIC MCU families"
http://www.mikroe.com/pdf/mikroc/mikroc_manual.pdf
Es gibt aber anscheinend IntToStr und andere Funktionen

von Oliver K. (ollik)


Lesenswert?

Könntest du mir bitte mal den Code für die selbst ausprogrammierte itoa 
funktion geben? :)

Aber benötigt man dafür nicht sprintf, wenn man itoa selbst 
programmieren möchte?

von Oliver K. (ollik)


Lesenswert?

A ok, dann werde ich mal nach einer anderen Möglichkeit suchen. Danke

von Oliver K. (ollik)


Lesenswert?

Habe es jetzt mit IntToStr() probiert und es funktioniert jetzt! Danke 
an alle für die Hilfe!

von Karl H. (kbuchegg)


Lesenswert?

Oliver K. schrieb:
> Könntest du mir bitte mal den Code für die selbst ausprogrammierte itoa
> funktion geben? :)

FAQ
gleich der erste Punkt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.