devxlogo

File I/O

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);}

See also  Why ChatGPT Is So Important Today
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist