bobby
bobby

Reputation: 305

Print a structure in a String format in C

I one of my assignment, I have a task to print the below whole structure in a string format.

Struct test
{
    int a,
    char char1,char2;
}

output should be: Structure is a=10,char1=b,char2=c; I know it is very simple by using

printf("Structure is a=%d,char1=%c, char2= %c", s.a,s.char1,s.char2);

But in real-time, I have a lot of big structures and I cannot write printf statements with access specifiers for each element of structure. Is there any other way to print the whole structure with just specifying the structure variable or some other?

Upvotes: 2

Views: 11639

Answers (2)

Shaw Ankush
Shaw Ankush

Reputation: 113

One possible solution I can think of is that you can take the help of the fread funtion using which you can save the whole content of the structure at once into a, say temporary file. Using:

fread(&STRUCTURE_OBJECT, sizeof(YOUR_STRUCTURE), 1, FILE_POINTER);

Where STRUCTURE_OBJECT is the name of a data element of your strucure. And then use linux based commands like "cat" and "piping" etc for the quick glance of the output.

Upvotes: -1

pauljz
pauljz

Reputation: 10901

There's no way to do this in pure C. Some languages support this via a concept called reflection, but it's not available in C.

Code-that-writes-code is your best bet. Write a script that finds all your structs and builds functions to printf them.

Upvotes: 6

Related Questions