• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

Xcode - Datei auslesen erzeugt Fehler

Puink

Golden Delicious
Registriert
14.04.09
Beiträge
9
Hallo,


ein teil meines Programms macht mir sorgen:

hier mal der fehlerhafte Teil:



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

int main (int argc, const char * argv[]) {


FILE *efile;
int i;
double test;

efile = fopen("entries.txt", "r"); // öffnen im Modus r für read = lesen
while(!feof(efile))
{
fscanf(efile, "%lf", &test);
printf("%lf",test);
i++;
}
fclose(efile); // Schließen der Datei
return 0;
}



Die Fehlermeldung:


The Debugger has exited due to signal 10 (SIGBUS).The Debugger has exited due to signal 10 (SIGBUS).




wo liegt denn da der Fehler - ist mEn alles in Ordnung.


Grüße Puink
 

Puink

Golden Delicious
Registriert
14.04.09
Beiträge
9
oh das kommt noch aus dem größeren Prog, weil die werte in einen Zeiger eingelesen werden.
 

Scotch

Bittenfelder Apfel
Registriert
02.12.08
Beiträge
8.056
Existiert entries.txt?

Gruss,
Dirk
 

Puink

Golden Delicious
Registriert
14.04.09
Beiträge
9
Hallo,

jap die Dateien existieren und liegen im gleichen Ordner wie auch die Programmdateien.

Ich habe inzwischen auf Win gewechselt - da klappt es ohne fehlermeldung..:(
 

Pennywise81

Jonagold
Registriert
23.07.09
Beiträge
21
Probier mal Folgendes:
Code:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
int main (int argc, const char * argv[]) {
 
     FILE *efile; 
     int i; 
     double test;
 
     efile = fopen("entries.txt", "r"); // öffnen im Modus r für read =  lesen
    if (!efile) {
        printf("Fehler: Datei konnte nicht geoeffnet werden!\n");
        exit(1);
    }
     while(!feof(efile)) 
         { 
                 fscanf(efile, "%lf", &test);
                 printf("%lf",test);
                 i++; 
         } 
         fclose(efile); // Schließen der Datei 
         return 0;
}
Wenn der Fehler ausgegeben wird, dann stimmt eventuell etwas mit den Zugriffspfaden nicht (vielleicht ist das Arbeitsverzeichnis nicht das erwartete). Das Signal SIGBUS ist jedenfalls verdächtig.
 

Scotch

Bittenfelder Apfel
Registriert
02.12.08
Beiträge
8.056
Das war auch mein Verdacht... Den check, ob die Datei existiert (bzw. ob man sie oeffnen kann - kann ja auch ein Problem mit den Zugriffsrechten sein) sollte man in jedem Fall einbauen.

Gruss,
Dirk
 

Puink

Golden Delicious
Registriert
14.04.09
Beiträge
9
hi Pennywise81,

das prog von dir liefert die gecodete Fehlermeldung kann nicht geöffnet werden,

Wie bzw wo stelle ich denn den Pfad ein?

dachte eigentlich dass das Programm immer auch im Dateiordner schau


Grüße Puink
 

Pennywise81

Jonagold
Registriert
23.07.09
Beiträge
21
Bist Du denn wirklich sicher, dass die Datei im gleichen Ordner liegt?
Gerade, wenn Du das Ganze in Xcode machst wäre ich da etwas vorsichtig. Also schau mal nach, ob die Datei auch im gleichen Ordner liegt wie das kompilierte Binary. Xcode packt das Kompilat in den Ordner <Projektordner>/build/<Configuration>, wobei Configuration Debug oder Release sein sollte.