nein ich hatte es so gemeint:Zitat von palermo
kurz als erklärung:Code:#include "qfixBobbyBoard.h" #include "qfixLCD.h" BobbyBoard bobby; LCD lcd; int main() { char wert[3+1]; while (1) { lcd.clear(); int sharp = bobby.analog(0); sprintf(wert, "%d", sharp); lcd.print(0, 0, wert); } }
zeile "char wert[3 + 1];":
du hast ja gesagt du hast maximal 300 als wert also 3 zeichen,
der wert soll also in einen string umgewandelt werden. für jedes zeichen muss speicher reserviert werden. wir müssen also ein array mit 4 zeichen anlegen.
du denkst dir sicher es würden dann ja 3 zeichen reichen, aber das ist nur bedingt der fall.
in c wird ein string immer mit '\0' abgeschlossen. dies kennzeichnet das ende eines strings. '\0' ist ein weiters zeichen und muss unbedingt berücksichtigt werden, wenn du mit string funktionen arbeitest.
zeile sprintf:
siehe link von meinem ersten post
zeile "lcd.print(0, 0, wert);":
an die unterfunktion lcd.print wird ein pointer auf die daten übergeben. ein pointer zeigt auf eine speicherstelle in der dein wert steht. in unserem fall steht der string in der variable "wert" welche auf irgendeine speicherstelle zeigt.
hoffe das ist verständlich
mach dir da drüber keine gedanken jeder hat mal klein angefangen. trotzdem würd ich dir nahelegen, dir irgendeinen c kurs reinzuziehen. spätestens bei einem komplexeren programm wirds dich aufschmeissen mit pointern sag ich malZitat von palermo
wenn du aber zeit in zuerst lesen und dann probieren investierst, wirst du sicher viel mehr spass an der sache haben
lg
Lesezeichen