| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 666 人关注过本帖
标题:请高手指点一下错误!
取消只看楼主 加入收藏
我为C狂
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2004-7-29
收藏
 问题点数:0 回复次数:1 
请高手指点一下错误!

#include <stdio.h> #define D "%c" #define N "\n" #define D3 D D D N main() { char a,b,c; printf("enter the a,b,c:\n"); scanf(D3,&a,&b,&c); putchar(a);putchar(b);putchar(c); getch(); }

2004-07-30 19:01
我为C狂
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2004-7-29
收藏
得分:0 

"你的宏定义不好:

D3="%c""%c""%c""\n" 你想要的是D3="%c,%c,%c"这样才是正确的"

我一开始也是这么想,但是书上的例子的确就是用这种方法编的.

例:#define PR printf

#define NL "\n"

#define D "%d"

#define D1 D NL

#define D2 D D NL

#define D3 D D D NL

#define D4 D D D D NL

#define S "%s"

main()

{int a,b,c,d;

char string[]="CHINA";

a=1;b=2;c=3;d=4;

PR(D1,a);

PR(D2,a,b);

PR(D3,a,b,c);

PR(D4,a,b,c,d);

PR(S,string);

}

运行时输出以下结果:

1

12

123

1234

CHINA

就这个题目来说,,用宏定义真的变得更麻烦.主要是,如果我们把它们单独编成一个文件,当一个"格式库"

这样我们每次写程序就不用那么麻烦,只要每次用#include把这个文件放到自己编的程序里,也可以省很多劳动的啊!


C语言程序设计
2004-08-02 07:51
快速回复:请高手指点一下错误!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027727 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved