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  10Name2  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
“, nLine); break; } printf(“%s, %d, %d, %d
“, szName, num1, num2, num3); } fclose(f);}

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: