| | |
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
| Thread Tools | Search this Thread |
#include adobe ansi api append array arrays asterisks binarysearch changingto char character cm copyimagefile cprogramme creafecopyofanytypeoffileinc csyntax database directory dynamic execv feet fgets file fork framework frequency function getlasterror givemetehcodez global grade gtkgcurlcompiling hacking hardware highest histogram include incrementoperators infiniteloop input interest kernel keyboard kilometer license linked linkedlist linux linuxsegmentationfault list lists locate logical_drives looping loopinsideloop. lowest match matrix meter microsoft motherboard mqqueue number odf opensource overwrite owf pattern pdf performance pointer posix probleminc process program programming radix recursion recv repetition research reversing scripting segmentationfault sequential socket socketprograming standard string systemcall testing threads turboc unix user voidmain() wab windows.h windowsapi






