在这里我将得到4,5,6,25的输出。
如何一次性打印结构中的所有成员,而不是每次访问结构中的单个成员。
比如我需要行的输出为[4 5 6],年龄为25。
请帮忙!
#include<stdio.h>
typedef struct person
{
int row[3];
int age;
} PERSON;
int main()
{
PERSON p;
PERSON *pptr=&p;
pptr->row[0] = 4;
pptr->row[1] = 5;
pptr->row[2] = 6;
pptr->age = 25;
printf("%d\n",pptr->row[0]);
printf("%d\n",pptr->row[1]);
printf("%d\n",pptr->row[2]);
printf("%d\n",pptr->age);
return 0;
}
最佳答案
如果使用glibc
(GNU libc,因此仅在使用gcc
时可用,虽然不是portbale),则可以定义和注册用于glibc
实现printf
系列函数的“新”转换说明符,这些函数能够满足OP的要求。
欲了解更多信息,请阅读此处:http://www.gnu.org/software/libc/manual/html_node/Registering-New-Conversions.html#Registering-New-Conversions和此处:http://www.gnu.org/software/libc/manual/html_node/Defining-the-Output-Handler.html#Defining-the-Output-Handler
这里有一个例子:http://www.gnu.org/software/libc/manual/html_node/Printf-Extension-Example.html#Printf-Extension-Example