1.
zapoznaj się z techniką debugowania programu
i nie pisz więcej, że program Ci się zawiesza.
Dowiedz się co faktycznie program robi i która linia sprawia problem
najprostszy debuger to
cout << "zmieniana zmienna";
2.
popatrz na przykład zastosowania fscanf z
http://www.cplusplus.com/reference/cstdio/fscanf/fscanf (pFile, "%s", str);
i jak jest u Ciebie - czytasz je, ale gdzie lądują wczytane dane ?
3.
//co będzie gdy w innym miejscu niż warunku "while" przeczytasz EOF
while( fscanf( wczytaj, "%s" ) != EOF )
{
...
fscanf( wczytaj, "%d" ); //co jak tu przeczytasz EOF
...
fscanf( wczytaj, "%s" ); //co jak tu przeczytasz EOF
...
//itd. co jak tu przeczytasz EOF
...
}
ewidentnie zła konstrukcja
- w jednym miejscu kodu czytasz z pliku, a potem badasz co przeczytałeś
4.
ja wyżej ale %s w fscanf oznacza
s String of characters Any number of non-whitespace characters, stopping at the first whitespace character found. A terminating null character is automatically added at the end of the stored sequence.
czyli rodzi się pytanie
co właściwie robią kolejne wywołania fscanf ?
piszę bo nie wiem jak wyglądają dane, czy są odpowiednio sformatowane ?