werte aus datei lesen?
-
Welcher Datentyp ist Wert1, Wert2, ... ?
-
die werte habe ich vom deutschen wetteramt, es handelt sich um einen Temperaturverlauf ueber das Jahr 2007 einer Wetterstation. Also mit einer Nachkommastelle,
1 10.2
2 10.3
3 10.5
4.10.8
...
287 24.2
288 24.4
289 24.3
-
sind dann wohl float-variablen
-
Ok, dann wird die Datei ja nicht so groß. Schieb die Werte in ein Array.
Die Zahlen davor sind ja eigentlich überflüssig, die kannst du wegschmeißen und dann die Temperaturwerte über den Index des Arrays holen:#include <stdio.h> int main() { float temperatures[370] = {0}; char* file = "test.txt"; int dummy; int i=0,j; FILE* fp = fopen ( file, "rt" ); if ( !fp ) return 1; while ( !feof( fp ) ) fscanf ( fp, "%d %f\n", &dummy, &temperatures[i++] ); fclose( fp ); for ( j=0; j<i; j++ ) printf ( "Nr. %3d T: %.1f\n", j+1, temperatures[j] ); return 0; }
-
koenntest du mir noch kurz erklaeren was ich noch tun muss? Aber danke schonmal!
-
IFIllusion schrieb:
koenntest du mir noch kurz erklaeren was ich noch tun muss? Aber danke schonmal!
Wie meinst'n das jetzt?
Also, compilieren musst du das Programm und eine Textdatei mit deinen Temperaturwerten solltest du parat haben.
Oder was meinst du mit 'noch tun müssen'?
-
Compilieren klappt wunderbar, nur weiss ich nicht, wie ich es jetzt hinkriege, dass ich per scanf die Laufnummer der passenden Temperatur eingeben kann und das Programm mir dann den entsprechenden Wert einer Variablen zuweist. Waere nett, wenn du mir das kurz erklaeren koenntest, wie das mit dem Array gemeint ist, habe bisher nur wenig c Erfahrung.
-
Du brauchst eine Funktion, die dir per scanf einen Intgerwert absturzsicher einliest, dieser Wert ist die Nummer des Tages.
Dieser Integerwert minus Eins dient als Index für dein Array. In dem Array stehen alle Temperaturen für das ganze Jahr drin.Was ein Array ist, entnimmst du entsprechender Fachliteratur oder googelst.
Das zu erklären, dafür habe ich jetzt keine Zeit.
Vielleicht findet sich ja noch jemand.
-
Guck mal, so geht das mit einem Integer Array:
#include <stdio.h> int main() { // Deklaration eines Arrays mit Platz für 3 Integer-Werte. int iArray[3]; // Die Anzahl der Elemente des Arrays steht bei der Deklaration in eckigen Klammern. // Die Elemente des Arrays werden über einen Index adressiert. // Der Index steht ebenfalls in den eckigen Klammern. // Das erste Element hat den Index 0, das letzte Element hat den Index n - 1, // wobei n die Anzahl Elemente des Arrays ist. iArray[0] = 1; // Das erste Element bekommt den Wert 1 zugewiesen. iArray[1] = 2; iArray[2] = 3; // Das letzte Element bekommt den Wert 3 zugewiesen. // Der Inhalt des Arrays anzeigen: printf ( "%d\n", iArray[0] ); printf ( "%d\n", iArray[1] ); printf ( "%d\n", iArray[2] ); return 0; }
-
Die Zuweisung eines Arrayelements an eine Variable geht so:
int main() { int iArray[3]; int iVariable; iArray[1] = 88; iVariable = iArray[1]; // Hier ist die Zuweisung. printf ( "%d\n", iVariable ); // Inhalt der Variable anzeigen. return 0; }