Problem z odczytem z pliku tekstowego

0

Witam

Próbuję wypisać w konsoli zawartość pliku tekstowego za pomocą funkcji fopen w następujący sposób:

#include <stdio.h>

int main(){
	FILE* file;
	file = fopen("plik.txt", "r");
	int k;
	while( fscanf( file, "%d", &k) != EOF )
		printf("%d\n", k);

	fclose(file);
	getchar();

}

Problem w tym że program nie wykrywa pliku, nawet gdy podam bezpośrednią ścieżkę to nic się nie dzieje.
Z góry dziękuję za pomoc

0

Najlepiej sprawdź sam:

 #include <stdio.h>
#include <errno.h>
#include <string.h>

int main(){
    FILE* file;
    if((file = fopen("plik.txt", "r")) == NULL){
		printf("%s\n",strerror(errno));
		return -1;
	}
    int k;
    while( fscanf( file, "%d", &k) != EOF )
        printf("%d\n", k);

    fclose(file);
    getchar();

}
0

Wyskakuje mi zgodnie z if'em: no such file or directory i zwracana wartość -1. Próbując ze ścieżką pliku(którą wpisuję oczywiście z podwójnymi backslashami) pojawia się to samo.

0

Podaj tą pełną ścieżkę, możliwe że masz tam jakieś znaki specjalne które wymagają backslasha.

0

D:\Programy\Cwiczonko\plik.txt

0

Jeśli to jest Cwiczonko a nie "ćwiczonko" to zapewne użycie patcha

 D:\\Programy\\Cwiczonko\\plik.txt
lub
D:/Programy/Cwiczonko/plik.txt

powinno pomóc.
Ewentualnie skompiluj coś takiego:

 #include <stdio.h>
#include <errno.h>
#include <string.h>

int main(int argc,char **argv){
    FILE* file;
    int k;

    if(argc != 2){
        printf("%s\n","Usage: program <path>");
        return -2;
    }
    printf("path: %s\n",argv[1]);
    if((file = fopen(argv[1], "r")) == NULL){
        printf("%s\n",strerror(errno));
        return -1;
    }
    while( fscanf( file, "%d", &k) != EOF )
        printf("%d\n", k);

    fclose(file);
    getchar();

}

I zobacz co Ci wyskoczy, przeciągając plik do konsoli. Czyli przeciągasz do konsoli skompilowany program dajesz spację, przeciagasz do konsoli plik i wciskasz enter.

0

No niestety nic to nie dało :/

1 użytkowników online, w tym zalogowanych: 0, gości: 1