Ich versuche, die von mir ausgedruckten Informationen in einer TXT-Datei aus einem separaten Programm zu lesen und in diesem neuen Programm anzuzeigen. Obwohl, wenn ich das Programm starte, sagt es, dass die Datei nicht gefunden werden kann. Ich vermute, es ist mein Code, und nicht der Speicherort der Datei, da ich meinen harten Code doppelt überprüft habe, hier ist, was ich bisher habe, wenn mir jemand in die richtige Richtung zeigen könnte, das wäre toll!.txt-Datei und Druckergebnisse lesen
#include <stdio.h>
#include <stdlib.h>
#define ARRAY_SIZE 21
typedef struct data_slice
{
int t; // -> Time
float tp; // -> Valve pressure
float tf; // -> Sodium flow
float tt; // -> Sodium temp in Celsius
} data_slice;
void printIt(data_slice * data);
int main()
{
float num;
FILE *fptr;
data_slice data[ARRAY_SIZE];
if ((fptr = fopen("/Users/captainrogers/Documents/output_data.txt","r")) == NULL){
printf("Error! opening file");
// Program exits if the file pointer returns NULL.
exit(1);
}
fscanf(fptr,"%f \n", &num);
printIt(data);
fclose(fptr);
return 0;
}
void printIt(data_slice * data)
{
// Find the indice holding the time value of -10
int indice = 0;
for (int i = 0; i < ARRAY_SIZE; ++i)
{
if (data[i].t == -10)
{
indice = i;
break;
}
}
// Print results to screen
for (int i = 0, temp = indice; i < ARRAY_SIZE; ++i)
{
printf("%i\t %f\t %f\t %f\n", data[temp].t, data[temp].tp, data[temp].tf, data[temp].tt);
temp = (temp + 1) % ARRAY_SIZE;
}
}
Daten Ich versuche, von .txt zu drucken:
-10 595.000000 15.000000 167.000000
-9 557.000000 17.000000 168.000000
-8 634.000000 17.000000 114.000000
-7 656.000000 10.000000 183.000000
-6 561.000000 13.000000 139.000000
-5 634.000000 17.000000 124.000000
-4 672.000000 19.000000 155.000000
-3 527.000000 14.000000 166.000000
-2 656.000000 11.000000 188.000000
-1 661.000000 18.000000 141.000000
0 689.000000 17.000000 146.000000
1 624.000000 11.000000 104.000000
2 504.000000 20.000000 120.000000
3 673.000000 18.000000 147.000000
4 511.000000 12.000000 114.000000
5 606.000000 14.000000 171.000000
6 601.000000 13.000000 159.000000
7 602.000000 11.000000 127.000000
8 684.000000 10.000000 194.000000
9 632.000000 16.000000 139.000000
10 651.000000 13.000000 168.000000
Es sieht so aus, als ob Sie auf einem MacOS-System sind. Denken Sie daran, dass bei POSIX-Systemen (wie Mac OS und Linux) bei Datei- und Verzeichnisnamen die Groß-/Kleinschreibung beachtet wird. Ich empfehle Ihnen auch, den Wert von "errno" direkt nach "fopen" auszudrucken, um einen Null-Zeiger, vielleicht in druckbarer Form, unter Verwendung von z. 'perror'. –
Nun, ich habe gerade eine zufällige Datei erstellt und Ihren Code ausprobiert und es funktionierte ohne irgendwelche Änderungen (außer dem Dateipfad). –
@Someprogrammerdude: Der Standard-Dateisystemtyp (HFS +) unter OS X (Mac) unterscheidet standardmäßig die Groß-/Kleinschreibung. Sie * können * Groß-und Kleinschreibung sensible Dateisysteme auf Mac (Case-Sensitive HFS +) erstellen, aber die meisten nicht. – cdarke