Ich kann nicht Kopf oder Schwanz von diesem machen - Ich habe eine Datei input1.txt
in meinem Arbeitsverzeichnis, aber ich kann nicht fopen()
es.fopen() gibt NULL, Datei existiert im aktuellen Verzeichnis
Meine Verzeichnisstruktur (Xcode):
main():
const char* fileName = "input1.txt";
if (argc > 1)
{
fileName = argv[1];
}
printf("Opening file: %s\n", fileName);
clock_t timer = clock();
HashMap* map = hashMapNew(10);
// --- Concordance code begins here ---
// Be sure to free the word after you are done with it here.
FILE *in;
if ((in = fopen(fileName, "r")) == NULL) {
printf ("Can’t open %s for reading. %s\n", fileName, strerror(errno));
}
char* w = nextWord(in);
printf("%s",w);
Nextword():
char* nextWord(FILE* file)
{
int maxLength = 16;
int length = 0;
char* word = malloc(sizeof(char) * maxLength);
while (1)
{
char c = fgetc(file);
if ((c >= '0' && c <= '9') ||
(c >= 'A' && c <= 'Z') ||
(c >= 'a' && c <= 'z') ||
c == '\'')
{
if (length + 1 >= maxLength)
{
maxLength *= 2;
word = realloc(word, maxLength);
}
word[length] = c;
length++;
}
else if (length > 0 || c == EOF)
{
break;
}
}
if (length == 0)
{
free(word);
return NULL;
}
word[length] = '\0';
return word;
}
ich den Fehler:
Can’t open input1.txt for reading. No such file or directory
Warum funktioniert das nicht? Die Datei ist auf jeden Fall dort ...
Das "aktuelle" Verzeichnis in einer IDE ist möglicherweise nicht immer das, was Sie denken, dass es ist. Überprüfen Sie die Projekteinstellungen, um zu sehen, auf was das "aktuelle" Verzeichnis eingestellt ist. Bitte bearbeiten Sie Ihre Frage, um uns mitzuteilen, welche IDE Sie verwenden. Sie können es natürlich immer innerhalb des Programms ausdrucken, um zu sehen, was es ist. –
Eine Sache, die Sie reparieren müssen, Sie überprüfen, ob der 'fopen()' Aufruf erfolgreich war und das ist toll, aber Sie gehen auf Anywat versuchen, daraus zu lesen, sieht das nicht falsch für Sie? –
den vollständigen Pfad Geben und versuchen, die Datei oder tut System (PWD) Öffnen das Arbeitsverzeichnis zu erhalten. – SilentMonk