devxlogo

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

Charlie has over a decade of experience in website administration and technology management. As the site admin, he oversees all technical aspects of running a high-traffic online platform, ensuring optimal performance, security, and user experience.

See also  How Seasoned Architects Evaluate New Tech

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.