read numbers from file and assign it to corresponding variables in c

Posted on 2007-03-19
Last Modified: 2010-04-15
I have a txt file with numbers such as...

3 23 1 39 48
9 3 92 9 12

the first row represents something, the second number in row two represent something else.
the third row and corresponding number each have it's own functionality

here is what i need to do but can't figure out how in C
int a = (the number in first row, which is 4 in example);
int b = (the number in second row, 10 in example);
int[number of numbers in row 3] c = {in row three - first num, second num, third num...etc} = {3,23,1,39,48};
int[number of numbers in row 4] d = {......}

How can I do this?
Question by:shpark82
  • 3
  • 2
LVL 53

Expert Comment

ID: 18753403
Take a look at fscanf() :

Let us know if there is something that is not clear on that page. Don't forget to take a look at the example at the bottom of the page ...

Accepted Solution

nixfreak earned 500 total points
ID: 18754257
I hope I haven't misunderstood your question. The below program will read the files contents and put values an array. Instead of the arrays a, b, c, d  you have entry[0], entry[1], entry[2], entry[3] respectively. For example:
c[3] = 39

#include        <string.h>
#include        <stdlib.h>
#include        <stdio.h>

#define MAXCOL  4096

main(int argc, char *argv[])
        char    *line;
        int     *entry[MAXCOL];
        char    *token, *ret;
        FILE    *file;

        file = fopen("argv[1]", "r");

        for ( i = 0; ; i++ ) {
                entry[i] = calloc(MAXCOL, sizeof(int));
                if ( fgets(line, MAXCOL, file) == NULL)
                token = strtok(line, " ");
                entry[i][0] = atoi(token);
                for ( j = 1; (token = strtok(NULL, " ")) != NULL; j++ )
                        entry[i][j] = atoi(token);


        return 0;

LVL 53

Expert Comment

ID: 18755120
nixfreak, please don't post complete code solutions for questions that are very likely homework assignments.

The point of a homework assignment is that you learn something by solving it yourself. If you give the solution, you've robbed shpark82 of that opportunity.

Instead, you are allowed to give hints and pointers whenever and wherever the asker has problems with the assignment.
LVL 53

Expert Comment

ID: 18755123
@shpark82 : I would suggest to try to solve this yourself without looking at nixfreak's code. You'll learn a lot more, and gain a lot more satisfaction.

Expert Comment

ID: 18913637

While I agree with infinity08's advice, I think I did give a correct solution.

Featured Post

Netscaler Common Configuration How To guides

If you use NetScaler you will want to see these guides. The NetScaler How To Guides show administrators how to get NetScaler up and configured by providing instructions for common scenarios and some not so common ones.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Windows programmers of the C/C++ variety, how many of you realise that since Window 9x Microsoft has been lying to you about what constitutes Unicode ( They will have you believe that Unicode requires you to use…
This is a short and sweet, but (hopefully) to the point article. There seems to be some fundamental misunderstanding about the function prototype for the "main" function in C and C++, more specifically what type this function should return. I see so…
Video by: Grant
The goal of this video is to provide viewers with basic examples to understand and use while-loops in the C programming language.
The goal of this video is to provide viewers with basic examples to understand and use switch statements in the C programming language.

864 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

24 Experts available now in Live!

Get 1:1 Help Now