Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: C++
Expertise: Beginner
Jun 29, 1999

File I/O

Question:
How do I read in both a character string and int value from a file? The data I am trying to read looks like this:
Name1  10  10  10
Name2  10  10  10

Answer:
In my opinion, the newer C++ contructs really don't help much here. The best way I've found to handle this is to use the older C stream routines.

You could use fscanf to directly parse each line but I find the following approach to work very reliably and it even reports which line number contains an error if an error is encountered.

#include 

void main()
{
   FILE* f;
   char buff[512];
   char szName[80];
   int num1, num2, num3;
   int nLine = 0;

   f = fopen("c:\\test.dat", "rt");

   if (f == NULL)
      return;
   while (fgets(buff, 512, f) != NULL) {
      nLine++;
      if (sscanf(buff, "%s %d %d %d", szName, &num1, &num2, &num3) != 4) {
         printf("Bad syntax found on line %d\n", nLine);
         break;
      }
      printf("%s, %d, %d, %d\n", szName, num1, num2, num3);
   }
   fclose(f);
}
DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date