Help Reading A .txt File Into A 2D Array In C

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
6 replies · 20K views
NDiggity
Messages
53
Reaction score
0

Homework Statement


The program is to read in a file full of numbers formatted like this: The first line contains a single int n. Following this line, there will be n lines with n ints each separated by whitespace.

So I have asked the user for a file path and read in the first number ('n') which tells me how big the array I need to make should be, and created a dynamically allocated 2d array with the dimensions nxn which is what we are supposed to do.

Then, I need to make a copy of this file into the dynamically allocated array. Then I need to check whether the file contains a magic array, meaning the sum of every row and column is identical, and report to the user where it is.

My problem is making a copy into my 2d array. I'm using fscanf with for loops to read in each value, but that initial int('n') at the top of the file screws it up. Is there any way I can get it to skip this number when it reads this in, because it screws up the contents of the array.

Here is an example of the file I need to copy:
3
1 2 3
3 2 1
2 1 3
 
on Phys.org
I allocated the array but then I need to fill it with the values contained in the file which is the step I'm having trouble with. Here is the loop I made and then assigning the array the values contained in the file, except I want to skip that very first number in the file, which I don't know how to do.
http://rafb.net/p/ta7PNj72.html
 
Last edited by a moderator:
I figured out my problem. I forgot the ampersand in front of the array in the fscanf function.
 
Last edited:
Ok good.
Initially from your description I thought you were inadvertently closing infile and reopening it.
That would restart the stream back to the first data element "3".
Incidentally did you fix the feof test too?
My man page shows it should be (feof(infile) == 0)
 
Yes, I did fix the feof function. I ran it once and got an infinite loop before realizing that! Thanks for your help.