1.11M Members

Reading a File Line By Line

 
2
 

While not terribly difficult, first timers may not know the functions to look up and use. Here is some basic code for reading a file one line at a time. The contents of the file are printed to the stdout.

#include <stdio.h>

int main ( void )
{
   static const char filename[] = "file.txt";
   FILE *file = fopen ( filename, "r" );
   if ( file != NULL )
   {
      char line [ 128 ]; /* or other suitable maximum line size */

      while ( fgets ( line, sizeof line, file ) != NULL ) /* read a line */
      {
         fputs ( line, stdout ); /* write the line */
      }
      fclose ( file );
   }
   else
   {
      perror ( filename ); /* why didn't the file open? */
   }
   return 0;
}

/* file.txt
This text is the contents of the file named, "file.txt".

It is being used with some example code to demonstrate reading a file line by
line. More interesting things could be done with the output, but I'm trying to
keep this example very simple.
*/

/* my output
This text is the contents of the file named, "file.txt".

It is being used with some example code to demonstrate reading a file line by
line. More interesting things could be done with the output, but I'm trying to
keep this example very simple.
*/
 
0
 

I thinks instead of depending on the length of the line (which can be variable depeding on the type of editor and its settings).I think it'll be better to look for '\n' which is line separator.

 
0
 

I thinks instead of depending on the length of the line (which can be variable depeding on the type of editor and its settings).I think it'll be better to look for '\n' which is line separator.

Then you would be describing doing this "by character" rather than by line. Otherwise you are wonderfully overcomplicating this with dynamic memory allocation a la C++'s std::string.

 
0
 

hi this is great!

can you tell me how do i put each line to an array?

 
0
 

hi guys
i just modified the one i got here: this will read line by line from a text file then stored every line to an array;

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <ctype.h>
#include <ctype.h>
#include <time.h>
#include <sys/types.h>


int main ( void )
{
static const char filename[] = "data.txt";
FILE *file = fopen ( filename, "r" );
int i, j;
char arra[128][128];
char line[128]; /* or other suitable maximum line size */



for(i=0; i<128; i++)
for(j=0; j<128; j++)
arra[j] = '\0';


for(i=0; i<128; i++)
line = '\0';


if ( file != NULL )
{


i=0;


while ( fgets ( line, sizeof line, file ) != NULL ) /* read a line */
{


strcpy(arra, line);
printf("array ----> %s ", &arra);
i++;


}
fclose ( file );
}
else
{
perror ( filename ); /* why didn't the file open? */
}



return 0;
}
 
0
 

i want to Read a line from file then compare it to a sentense(GPS Sentence) and if its match(valid) then display this line else display Error

plz advice
Regards

 
0
 

thanks for this code this is just what im looking for..:D

 
0
 

Im very much thankful to you for providing the coding for me

 
0
 

thank you for the code..!!![/COLOR]

 
0
 

I tried using this code, but it gives a segmentation error when trying to read the last line of the file

 
-1
 

may be you should avoid placing a newline character twice at the end of the file.
coz after the new line character it will try to read the next line but the fileEnd comes up

 
0
 

Good Afternoon, i would like to ask you a question.

I have got file which structured as
"point id" "x coordinates" "y coordinates" "z coordinates"

I would like to open file and search for point id then if point exist in the file
I would like to use x,y and z coordinates of the point.

I will call 4 point like that and calculate the cross-section point coordinates
then write it on file by giving point id by user.

and I also would like to chech if the point id giving by user is exist in the file too.

I dont need the calculation part, i will match variables to x1,y1,z1, ..... x4,y4,z4,
and calculate x5,y5,z5 but i couldnt manage other things.

I will be glad to have any help.

 
0
 

thank

Isn't it about time forums rewarded their contributors?

Earn rewards points for helping others. Gain kudos. Cash out. Get better answers yourself.

It's as simple as contributing editorial or replying to discussions labeled or OP Kudos

You
This is an OP Kudos discussion and contributors may be rewarded
Post:
Start New Discussion
Tags Related to this Article