Odczyt znaku nowej linii

0

Czesc! Mam problem z programem ktory ma odczytywac znaki w pliku od polozenia podanego z klawiatury do konca linii, nie do konca rozumiem dlaczego warunek c != '\n' nie dziala poprawnie, zaden znak sie wtedy nie wyswietla, prosze o pomoc!
Oto kod:

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

int main()
{
	char nazwa[15];
	printf("Podaj nazwe pliku do otworzenia: ");
	scanf("%s", nazwa);
	FILE *wp;
	if ((wp = fopen(nazwa, "r"))==NULL)
	{
		printf("Nie mozna otworzyc pliku\n");
		exit(EXIT_FAILURE);
	}
	int i;
	long poz;
	char c;
	printf("Podaj polozenie w pliku: ");
	while ((scanf("%d", &i)) == 1 && i>0)
	{
		poz = (long)i * sizeof(char);
		fseek(wp, poz, SEEK_SET);
		
		while ((c = getc(wp)) != EOF && c!='\n')
		{
			printf("%c", c);
		}
		printf("Podaj polozenie w pliku: ");
	}

	return 0;
}
0

Mam wypisane miasta:
krakow warszawa lodz
poznan rzeszow wroclaw
gdynia sopot zielona gora
kolobrzeg lublin sanok

0
  1. Zdefiniuj nie działa - bo u mnie działa: https://wandbox.org/permlink/8hF4fMkyQ7aDmmyr
  2. poz = (long)i * sizeof(char); sztuka dla sztuki, sizeof(char) jest zawsze 1
  3. https://dsp.krzaq.cc/post/445/jak-zadawac-pytania-na-forum/
0

Dziekuje bardzo! Byc moze wynika to z tego ze dane w pliku zapisuje na Windowsie a nie Linuxie, gdzie znak nowej linii to \r\n :) dzieki jeszcze raz :)

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