• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Messdaten verarbeiten

Status
Für weitere Antworten geschlossen.

lilo

Neues Mitglied
Hallo
in meiner Datei mess lege ich Daten ab 123 oder 444, der Fehler in meinem
Programm ist wenn ich 440 schreibe wird 44 ausgegeben,
Dem Programm fehlt die Eleganz.
Kann mir jemand helfen?
lilo

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

main (void)
{
int w1=3; int x;
int a1=0;int a2=0;int a3=0;int b; int count=0;

FILE *datei; //Zeiger auf ein FILE setzen
char text[100+1]; //mache ein array
datei = fopen ("testdatei", "r");

while(w1)
{
x=getc(datei);
*text=x;
x = atoi(text);
count++;
if(count==1)a1=x; if(count==2)a2=x*10;
if(count==3)a3=x*100;
if(count==3){b=a1+a2+a3;printf(" %d\n",b);count=0;}
if(b==444)printf("Spannung zu hoch\n");

w1--;
}
fclose (datei);
return 0;

}
 
Du hast also nur eine Zahl in dem File stehen?
Dann lies das doch einfach mit fscanf() aus, das musst Du dann nicht Zeichen für Zeichen lesen und irgendwelche Berechnungen anstellen.

Alternativ kannst Du auch fgets() verwenden und dann den gelesenen String mit atoi() in ein Integer umwandeln.
 
Die Messdaten stehen in der Textdatei unter einander
123
456
444
liest fgets() nicht den ganzen File aus? Bei 444 zb. schreibe (Sp. zu hoch) ist
mein Wunsch.
 
Zuletzt bearbeitet:
Hast Du keine Manual Pages zu den Funktionen? Im Zweifelsfall mit "man fgets" im WWW suchen.
fgets() liest einen String bis zu einem Nullbyte oder Newline. Das heißt Du kannst damit eine Datei zeilenweise einlesen.
 
Hast Du keine Manual Pages zu den Funktionen? Im Zweifelsfall mit "man fgets" im WWW suchen.
fgets() liest einen String bis zu einem Nullbyte oder Newline. Das heißt Du kannst damit eine Datei zeilenweise einlesen.
Danke für die Information, ich hoffe klar zu kommen.
Die Idee hinter allem ist über USB Temperaturwerte in
eine Datei einlesen. Mit C Datei lesen und an einen
Mikrokontroler ausgeben.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben