Czołem :)
Mam problem z zadaniem o następującej treści:
Napisz program, który pobierze od użytkownika ścieżkę dostępu do pliku, a następnie wyświetli na ekranie jego zawartość. Plik będzie zapisany w trybie tekstowym.
W przypadku problemów z dostępem do pliku, program powinien wyświetlić komunikat Couldn't open file i zakończyć działanie z kodem błędu 4. Jeżeli uda się odczytać plik i wyświetlić jego zawartość program powinien zwrócić wartość 0. W przypadku, kiedy nie będzie nic do wyświetlenia program powinien poinformować o tym użytkownika komunikatem Nothing to show.
Pamiętaj o tym, żeby zamknąć plik na koniec działania programu.
Przykładowe wejście:
Podaj sciezke do pliku:⏎
text.txt⏎
Przykładowe wyjście (dla pliku text.txt):
To jest przykladowy tekst w pliku.⏎
A to jest druga linia w pliku.
Uwaga
W programie nie wolno używać funkcji alokujacych pamięć.
W programie można zadeklarować tylko jedną tablicę na 30 znaków (do przechowywania nazwy pliku). Deklaracja musi wyglądać następująco: nazwa_zmiennej[31];.
W programie nie wolno używać operatora [].
Mój kod na tym etapie wygląda tak:
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Podaj sciezke do pliku\n");
char nazwa[31];
scanf("%s",&nazwa);
FILE *f= fopen(nazwa,"r");
if(f==NULL)
{
printf("Couldn't open file");
return 4;
}
return 0;
}
Co muszę zrobić dalej, by rozwiązać to zadanie? Gdybym mógł zadeklarować kolejną tablicę reszta byłaby już prosta, ale tak nie wiem jak to dalej pociągnąć. :(
EDIT
Rozbudowałem trochę mój kod:
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Podaj sciezke do pliku\n");
char nazwa[31];
scanf("%s",nazwa);
FILE *f= fopen(nazwa,"r");
if(f==NULL)
{
printf("Couldn't open file");
return 4;
}
int liczydlo=0;
/*
while(!feof(f))
{
fgets(nazwa,100,f);
puts(nazwa);
}
*/
char c;
while(1)
{
c = fgetc(f);
if(c==EOF)
{
break;
}
else if(c!=10)
{
printf("%c", c);
liczydlo=1;
}
else
{
printf("\n");
liczydlo=1;
}
}
if(liczydlo==0)
{
printf("Nothing to show");
}
fclose(f);
return 0;
}
Jednak gdy oddaję zadanie do sprawdzenia wywala mi się na tym przykładowym teście:
Podaj sciezke do pliku⏎
swimfreshfearfewplaceroundmusic.bin⏎
Couldn't open file
Domyślacie się może o co chodzi? :/