| | |
read each line of file
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
| Thread Tools | Search this Thread |
* ansi api array arrays bash binarysearch calculate centimeter changingto char character convert copyanyfile copypdffile createcopyoffile createprocess() directory dynamic execv fflush file floatingpointvalidation fork forloop frequency function getlasterror getlogicaldrivestrin givemetehcodez grade graphics gtkgcurlcompiling gtkwinlinux hardware highest histogram homework i/o ide inches infiniteloop initialization input intmain() iso keyboard km license linked linkedlist linux list looping loopinsideloop. lowest matrix microsoft mysql oddnumber open opendocumentformat openwebfoundation pdf pointer pointers posix power program programming pyramidusingturboccodes read recursion recv recvblocked repetition reversing scanf scheduling segmentationfault send shape single socketprogramming stack standard strchr string suggestions test testautomation threads unix urboc user variable whythiscodecausesegmentationfault win32api windows.h windowsapi






