Mail Archives: djgpp/1999/10/26/07:00:39
From: | "Paulu van Zijl" <paulu AT proloan DOT co DOT za>
|
Newsgroups: | comp.os.msdos.djgpp
|
Subject: | Re: Help to read array from text file
|
Date: | Tue, 26 Oct 1999 10:09:10 +0200
|
Organization: | The South African Internet Exchange
|
Lines: | 73
|
Message-ID: | <7v3npp$opl$1@ctb-nnrp2.saix.net>
|
References: | <7p2s92$6b95e$2 AT titan DOT xtra DOT co DOT nz>
|
NNTP-Posting-Host: | 196.25.225.24
|
X-Trace: | ctb-nnrp2.saix.net 940925561 25397 196.25.225.24 (26 Oct 1999 08:12:41 GMT)
|
X-Complaints-To: | abuse AT saix DOT net
|
NNTP-Posting-Date: | 26 Oct 1999 08:12:41 GMT
|
X-Priority: | 3
|
X-MSMail-Priority: | Normal
|
X-Newsreader: | Microsoft Outlook Express 5.00.2014.211
|
X-MimeOLE: | Produced By Microsoft MimeOLE V5.00.2014.211
|
To: | djgpp AT delorie DOT com
|
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp
|
Reply-To: | djgpp AT delorie DOT com
|
Steve <malex AT xtra DOT co DOT nz> wrote in message
news:7p2s92$6b95e$2 AT titan DOT xtra DOT co DOT nz...
> Well,
>
> I am trying to read a text file which contains 5 rows and 5 columns of
> numbers into an array, then print out the array on screem in the same
format
> that is was in the text file so that individual parts of the array can be
> summed, counted etc. so far, I have not been able to do so, any help with
> this would be very welcome.
>
> Included is what I have come up with so far, yer ok, so I am also new to
> this, there could be obvious mistakes in there of which I cannot see.
Below
> is the file that I have been working on.
>
> Steve
>
> #include <stdio.h>
> #include <stdlib.h>
>
> main()
> {
> FILE * aa;
> char fname[81], t[5][5];
>
> int a, ch, team, last;
>
> printf("Enter name of file to read: ");
> scanf("%80s", fname);
>
> aa = fopen(fname, "r");
> if (aa == NULL) {
>
> fprintf(stderr, "File cannot be opened.\n");
> exit(1);
> }
>
> while ((ch = getc(aa)) >= 0) { /* while not EOF */
> for (a = 0; a <= 26; ++a)
> fscanf(stderr, "%s", t[a]);
You cannot use %s here, because you're reading int's not strings. Also you
must use aa in the place of stderr, because aa is the file stream you're
reading from.
>
> fprintf(stderr, "%s \n", t[a]);
> }
Firstly, you cannot use t[a], because you defined t as t[5][5];. Also char
t[5][5] should read int t[5][5], because you are going to read int's into
the array, not chars.
Then I would write the while loop as two for loops, as follows:
int i, j, done;
done = 1; /*make sure that done doesn't equal EOF otherwise the 2 for loops
would never execute!*/
for (i = 0; (i < 5) && (done != EOF); i++)
for (j = 0; (j < 5) && (done != EOF); j++)
{
done = fscanf(aa, "%d", t[i][j]);
fprintf(stderr, "%d\n", t[i][j]);
}
>
> fclose(aa);
> return 0;
> }
>
>
- Raw text -