So ähnlich hatte ich es schon und hatte dann am Ende den selben Effekt.

Code:
while ( (c != EOF) && (n<SHRT_MAX*4 -1) );
Dieser Teil lässt mich schliessen das es dir in erster Linie um selbst erstellte Wave-Dateien geht?