Witam wszystkich,
Męczę się z tym tematem już ponad 3 dni. Potrzebuje waszej pomocy, problem wygląda następująco:

  1. Mam plik zapisany w ANSI który muszę odczytać linia po linii.
  2. Plik posiada w jednej linii sekwencję znaków 'SUB' i tu jest problem.
  3. Odczytanie pliku kończy się po napotkaniu odpowiedniego znacznika np '<END>', nie po EOF. Gdyż 'ctrl+z' jest traktowane jako EOF i tu jest problem.

Wydaję mi się, że próbowałem już wszystkiego: ftell(), fseek(), ungettc(). Dodam jeszcze że projekt jest wykonany w VS2012 - Character Set: UNICODE.

Oto jak wykonuje otwierania i przszukiwania pliku:

FILE *f_data;
_TCHAR buffer[32768];
char *file_ptr = 0;
bool eof = false;
f_data = _tfopen(path, L"rt");

file_ptr = f_data->_ptr;
//printf("%c", *file_ptr);		
int cnt, line = 0;

while(true){ //do testow
	if(_fgetts(buffer, 32768 - 1, f_data) == NULL) {
		return 0; 
	}
	/* ... opereacje na pliku */
	cnt++;
}	
.
.
.
 

Plik otwieram w 'text mode' ponieważ przekazywane są pliki zapisane w ANSI i przy 'rb' wyświetlają się krzaki. Jakieś propozycję jak rozwiązać ten problem??