Fehlerrechnung von Messwerten und Ausgabeprobleme
-
Hallo zusammen,
ich habe folgendes Problem. Ich möchte aus einer csv Datei verschiedene Messwerte einlesen und aus ihnen die Standardabweichung und Koeffizienten der Trendgeraden berechnen. Mein Problem ist nun, dass ich nicht weiß wie ich die eingelesenen Werte dann Variablen zur Weiterverabreitung zu ordne.
{File * datei; int g; datei = fopen (name,"r") fseek (datei,0,SEEK_END); g = ftell (datei) g = g/ size of (float); getch; }
bis hierhin haben wir jetzt zumindest schonmal die Größe der Datei ermittelt. Jetzt will ich aber noch die einzelnen Dateiinhalte einlesen.
int g; for (i=0;i<g;i++) { fread(&wert,size of (float),1,datei); //einlesen der Messwerte if (feof (datei)) break; messwerte [i]=&wert ; } // berechnung des Mittelwertes int g,summe,messwerte [i],mittel; for (i=0;i<g;i++) { summe = summe + messwerte [i]; mittel = summe/i; }
Leider kann ich das Programm nicht testen, womit wir zum zweiten großen Problem kommen. Wenn ich das Programm erstellt habe und das Erstellen fehlerfrei war, wird mir nach dem Starten im Fenster ein Fehler Side by Side Konfiguration angezeigt.
Kann mir jemand weiter helfen?
Vielen Dank schon mal
-
Oben:
Zeile 1: Ist hässlich
Zeile 6: 1. Wozu das? 2. Soll wohl heißen sizeof() statt size of
Zeile 7: getch() ist kein Standard-C, sondern Windows Quatsch.
Zeile 8: Fehlt da nicht noch ein rewind(datei)? Ansonsten ist dein Positionszeiger bereits am Ende.Unten:
Zeile 2: g hat noch keinen Wert.
Zeile 4: Einrückung vergessen, sizeof(), woher ist jetzt auf einmal "datei" bekannt? In welchem Zusammenhang stehen der obere und der untere Code?
Zeile 7: Soll heißen: messwerte[i] = wert; Ansonsten steht in messwerte[i] die Adresse der Variablen wert, aber nicht ihr Wert. Was spricht gegen fread(&messwerte[i], sizeof(float), 1, datei)?
Zeile 11: WTF? g ist schon deklariert, messwerte[i] kann man nicht deklarieren.
Zeile 12: g hat immer noch keinen bestimmten Wert.
Zeile 16: Macht nicht das, was du willstFazit: Erstmal die C Grundlagen lernen.
-
csv, csv... kommt mir bekannt vor... sag ja nich du hast das von J.W. "C von A-Z" oder? weil dann wunderts mich nich dass er so nen käse zusammenschreibt wenn
er C von diesem Tutorial lernt.
-
Zu CSV-Dateien sind hier im Forum in den letzten Wochen doch mehrere Beiträge verfasst worden. Eventuell mal die Suche danach starten?
Die Daten dann in die Messwerte bekommst du auch noch hin
MfG f.-th.
-
beautyfield schrieb:
bis hierhin haben wir jetzt zumindest schonmal die Größe der Datei ermittelt.
Super Idee, wenn auch falsch umgesetzt.
Hast du vielleicht mal etwas länger über dieses Problem nachgedacht?
Ist dir dabei vielleicht aufgefallen, wozu man die Dateigröße überhaupt braucht?
Wenn nein sage ich dir, dass du die Dateigröße nicht zwingend brauchst, du scheinst ganz andere Probleme zu haben, nämlich Grundsätzliche.Jetzt will ich aber noch die einzelnen Dateiinhalte einlesen.
int g; for (i=0;i<g;i++) { fread(&wert,size of (float),1,datei); //einlesen der Messwerte if (feof (datei)) break; messwerte [i]=&wert ; }
Dies hier hast du sicherlich irgendwo gefunden und versucht, die Zeile
messwerte [i]=&wert ;
anzupassen, ist falsch geworden. Und "size of" hast du auch falsch abgeschrieben.
// berechnung des Mittelwertes int g,summe,messwerte [i],mittel; for (i=0;i<g;i++) { summe = summe + messwerte [i]; mittel = summe/i; }
Dies hier ist auch prinzipiell richtig, wenn auch falsch umgesetzt.
Hast du das durch einen Compiler bekommen? Dann enthälst du uns aber sehr wesentlich Teile.wird mir nach dem Starten im Fenster ein Fehler Side by Side Konfiguration angezeigt.
Üblicher Fehler in Windows-Umgebungen, wenn man nicht statisch linkt oder zumindest auf dem Zielrechner die C Laufzeitumgebung installiert hat bzw. mindestens die Windows CRT mit ausliefert.
Kann mir jemand weiter helfen?
Ich gebe mir Mühe, dir im Rahmen von wenigen Zeilen nicht nur die Programmiersprache C an die Hand zu geben (von der du gelinde gesagt, keine Ahnung haben kannst) sondern auch noch Feinheiten im portablen Umgang mit Laufzeitumgebungen zu erklären, Erfolg hängt allein von dir ab.
Wie wärs, wenn dein Chef dich mal auf eine (mehrtätige/mehrwöchige/...) Schulung schickt?
-
Wutz schrieb:
wird mir nach dem Starten im Fenster ein Fehler Side by Side Konfiguration angezeigt.
Üblicher Fehler in Windows-Umgebungen, wenn man nicht statisch linkt oder zumindest auf dem Zielrechner die C Laufzeitumgebung installiert hat bzw. mindestens die Windows CRT mit ausliefert.
oder einfach anstelle einer Debugg, ein Release mitgibt =b
ich vermute er hat auf Debugg eingestellt und die dabei erstellte *.exe mitgeliefert
woraus dann eben der Side by Side Konfigurations Fehler ensteht. Einfach n´Release
machen und wenigstens der eine punkt ist fertig.
-
probleme haben sich erledigt. auch einen dank an cookie.