Reading in data into array (special case, please see)
Expand Post »
Hi there,
I need to make a piece of code in C that
1. opens a specified file,
2. Reads the data in the file and separates it as shown below,
3. Converts the strings into integers and then perfoms some manipulation on them,
4. returns the new values to a second text file (possibly, not quite sure on this one yet).
My data is given in the following format (there is one space between a1 and b1, b1 and c1, etc.):
x
y
a1 b1 c1 d1 e1 f1
a2 b2 c2 d2 e2 f2
while not EOF
I would like to read in data in the following format for further processing:
x
y
a[i] b[i] c[i] d[i] e[i] f[i]
a[i+1] b[i+1] c[i+1] d[i+1] e[i+1] f[i+1]
I guess I need to read it in as an array and then do some sort of concatenation/speration (my inputs can be one or two digits, i.e. a[i] can be 0 or 99). This is probably not very difficult, but I haven't touched C in about 6-7 years. It must be done in C (no C++ or C#). I tried to search, but couldn't find my case (maybe it was posted before and I just did not see it).
Please give me some hints. Timewise, I should be able to have it working ASAP.
Thank You very much.
Last edited by Rob111; Apr 19th, 2007 at 11:47 pm.
Re: Reading in data into array (special case, please see)
first, create the arrays of appropriate size. If you know the number of rows and columns in the file it will make it a lot easier. But if you don't (and normally you will not) then you will just have to dynamically allocate them with malloc().
Re: Reading in data into array (special case, please see)
Thanks Ancient Dragon,
I probably was not very clear on the task, so here are clarifications:
- x & y have no impact on the # of rows and columns
-I do not know the number of rows in the file and the number of rows will vary from file to file
-there are always 6 elements in a row (or line), but number of digits in each element can be 1 or 2 (i.e. a1 can vary from 0 to 99); the elements (columns) are separated by one space
-I would like to sort data into array as speficied in original post, I believe it will make the analysis better: I can just increment I to perform manipulations with the next row of data.
Re: Reading in data into array (special case, please see)
Getting the following error:
Error c:\lcc\projects\reading\reading.c: 23 type error in argument 2 to `fread'; found 'pointer to char' expected 'unsigned int'
Error c:\lcc\projects\reading\reading.c: 23 type error in argument 3 to `fread'; found 'pointer to int' expected 'unsigned int'
Error c:\lcc\projects\reading\reading.c: 23 insufficient number of arguments to `fread'
for the following line: while( fread(fp,"%d", &n) > 0)
Either the thread starter or a moderator has marked this thread as solved. You can most likely trust the responses and answers given. There is most likely no reason for any further responses to be posted here. If you have a related question, please start a new thread in this forum instead.
This thread is more than three months old
No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.