用“字符指针变量”实现I/O格式的控制

       说明:以下四个程序是通过“字符指针变量”或“字符数组”来指向或替代格式字符,可以通过事先定义好的“字符指针变量”或“字符数组”的字符串格式符来实现输入、输出格式的控制。
        程序A、B、D正确,程序C错误
程序A        √
main()
{
char format[]="a=%d, b=%g/n";
int a;
float b;
/*format="a=%d,b=%.2f";*/
scanf("%d%f",&a,&b);
printf(format,a,b);   /*相当于printf("a=%d, b=%g/n",a,b);本语句中的format将在编译时替换为"a=%d, b=%g/n",有点类似于#define宏定义*/
}

程序B       √
main()
{
char *format="a=%d, b=%g/n";
int a;
float b;
scanf("%d%f",&a,&b);
printf(format,a,b);    /*相当于printf("a=%d, b=%g/n",a,b);本语句中的format将在编译时替换为"a=%d, b=%g/n",有点类似于#define宏定义*/

}


程序C         ×
main()
{
char format[];
int a;
float b;
format="a=%d, b=%g/n";   /*允许通过初始化对字符数组赋值,绝不能单独采用赋值语句对数组整体赋值*/
scanf("%d%f",&a,&b);
printf(format,a,b);     /*相当于printf("a=%d, b=%g/n",a,b);本语句中的format将在编译时替换为"a=%d, b=%g/n",有点类似于#define宏定义*/

}


程序D         √
#include <string.h>        /*因程序中要使用到strcpy函数,所以必须加上文件包含命令#include <string.h>*/
main()
{
char format[30];          /*必须定义字符数组的大小*/
int a;
float b;
strcpy(format,"a=%d, b=%g/n");     /*只能使用strcpy函数,而不能使用strcat函数*/
scanf("%d%f",&a,&b);
printf(format,a,b);      /*相当于printf("a=%d, b=%g/n",a,b);本语句中的format将在编译时替换为"a=%d, b=%g/n",有点类似于#define宏定义*/

}

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/huangyiyun/archive/2007/12/15/1937642.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值