What you have will never work as you expect. The call to fgetc() is going to advance the file pointer, then fscanf() is going to be reading from the middle of some byte. Have you checked the return value from fscanf()? If it does not find a number to read from the file, it may be retaining the last read value. Is your file laid out something like: Name1,288,7099,441 Name2,1500 Name3,587,208
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Show me a community that obeys the Ten Commandments and I'll show you a less crowded prison system." - Anonymous