| | |
read each line of file
Please support our C advertiser: Programming Forums - DaniWeb Sister Site
Thread Solved |
I have a question:
I have a file named "data.inp". This file have numbers:
6 3 5 4 5
2 5 3 1
5 8 7 9
2 5 6 3 5 8 4 6
If I want more line of numbers, I will add numbers.
But I don't know how to read file "data.inp" line by line. I think I should use fgets, but seem that fgets is used for char. Or I used fgetc to read all numbers, then I count '\n' (note: "enter"), add 1, I have number of line. Then maybe I read file by that way?
thanks in advance!
I have a file named "data.inp". This file have numbers:
6 3 5 4 5
2 5 3 1
5 8 7 9
2 5 6 3 5 8 4 6
If I want more line of numbers, I will add numbers.
But I don't know how to read file "data.inp" line by line. I think I should use fgets, but seem that fgets is used for char. Or I used fgetc to read all numbers, then I count '\n' (note: "enter"), add 1, I have number of line. Then maybe I read file by that way?
thanks in advance!
fgets() doesn't know the difference between characters, such as 'a', 'b', 'c' ... and numbers such as '1', '2', '3' ... '9'. In the file they are all just text. If you want to treat all those numbers as text, read the file line by line, then just use fgets() the normal way
If you just want to add more lines to that file, then it isn't necessary to read it at all. Open the file for append and start writing -- new lines will be appended to the end of the existing lines.
C Syntax (Toggle Plain Text)
char line[80] FILE* fp = fopen("data.inp","r"); while(fgets(line,1,sizeof(line),fp) { // do something } fclose(fp);
If you just want to add more lines to that file, then it isn't necessary to read it at all. Open the file for append and start writing -- new lines will be appended to the end of the existing lines.
Last edited by Ancient Dragon; Feb 5th, 2007 at 9:38 am.
Don't PM me with questions -- you might get a nasty PM in response. If you have a question then post it in one of the forums.
The 3 Laws of the Procrastination Society:
1) Never do today that which can be put off until tomorrow
2) Tomorrow never comes
1) Never do today that which can be put off until tomorrow
2) Tomorrow never comes
I don't know whether or not this may help:
http://www.daniweb.com/code/printsnippet444.html
http://www.daniweb.com/code/printsnippet444.html
"One of the methods used by statists to destroy capitalism consists in establishing controls that tie a given industry hand and foot, making it unable to solve its problems, then declaring that freedom has failed and stronger controls are necessary." --Ayn Rand
Here is my code :
Hope you understand me.
#include<conio.h>
#include<stdio.h>
main()
{
clrscr();
int v[10],v1[10],i=0,j,t,k,number,count=0;
FILE *f ;
f=fopen("numbers.inp","r");
/* open file numbers.inp to read, for e.g, you inputs two rows ( can be more than two ) of number
5 4 4 3 3 3 2
2 2 1
*/
do
{
i++;
fscanf(f,"%d",&v[i]);
count++;
}
/* after these above commands, I change all chars in numbers.inp to integers belong to array v[i] so I think 5 4 4 3 3 3 2 and 2 2 1 now are integer not char */
while((number=getc(f))!=EOF);
/* I think problem is here, when I use fscanf I lost two rows and now
it read to end of file and it considers my two rows as one row v[i]={5 4 4 3 3 3 2 2 2 1} and it apply the beneath algorithm for it.
What I want is it does the algorithm to the first row 5 4 4 3 3 3 2 and export result to result.out, then does with the second row 2 2 1 and export result to result.out */
k=count;
while(v[1]>0)
{
for(i=2;i<=(v[1]+1);i++)
v1[i-1]=v[i]-1;
for(i=(v[1]+2);i<=count;i++)
v1[i-1]=v[i];
count--;
for(i=1;i<=count;i++)
v[i]=v1[i];
for(i=1;i<=(count-1);i++)
for(j=(i+1);j<=count;j++)
if(v[i]<v[j])
{
t=v[i];
v[i]=v[j];
v[j]=t;
}
for(i=1;i<=count;i++)
{
printf("%2d",v[i]);
if(i==count) printf("\n");
}
k--;
}
f=fopen("result.out","w");
i=k;
if(v[i]>(k-1)||(v[i]<0)) fprintf(f,"NO");
if(v[i]==0) fprintf(f,"YES");
getch();
fclose(f);
}![]() |
Similar Threads
- problems with reading random access line from a file (C++)
- read to end of line problem (C)
- Reading specific line in a file. / Searching (C++)
- Read in a string from a text file (C)
- input from file into class (C++)
- How to read end of line? (C++)
Other Threads in the C Forum
- Previous Thread: how do u find prime numbers in an array
- Next Thread: turboC
Views: 24407 | Replies: 17
| Thread Tools | Search this Thread |
Tag cloud for C
#include ansi array arrays asterisks binarysearch calculate centimeter changingto char command convert copyimagefile cprogramme creafecopyofanytypeoffileinc database directory dynamic fflush file fork forloop framework functions getlasterror givemetehcodez grade graphics gtkgcurlcompiling hacking hardware histogram homework inches include incrementoperators input iso kernel km lazy linked linkedlist linux linuxsegmentationfault list lists locate logical_drives looping loopinsideloop. lowest match matrix microsoft motherboard mysql number opendocumentformat opensource owf pattern pdf performance pointer posix problem probleminc process program programming radix recursion recv research reversing scanf scripting segmentationfault sequential shape socket socketprograming spoonfeeding standard string strings structures student systemcall testing threads turboc unix user variable voidmain() wab windows.h windowsapi






