scanf中使用宏

vv1133 2010-05-29 11:06:48
#define MAXLINE 1000

while (scanf("%MAXLINEs", buf) == 1)

请问这么用可以吗?
我做acm题的时候这么写提交会出现wrong answer ,但自己运行却没有出错
改成while (scanf("%s", buf) == 1)提交就正确了
这是什么原因?
...全文
194 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
happytang 2010-05-30
  • 打赏
  • 举报
回复
2楼正确,通过预处理替换一下
liang800518 2010-05-30
  • 打赏
  • 举报
回复
学习学习
vv1133 2010-05-30
  • 打赏
  • 举报
回复
谢谢 y
swolf_qu 2010-05-29
  • 打赏
  • 举报
回复
顶一下三楼
cattycat 2010-05-29
  • 打赏
  • 举报
回复
在引号内不行吧,不建议这么用。
  • 打赏
  • 举报
回复
#define MAXLINE 1000

#define _SCANF_FORMAT(x) ("%"## #x##"s")
#define SCANF_FORMAT(x) _SCANF_FORMAT(x)

int main()
{
char buf[100]={};
while (scanf( SCANF_FORMAT(MAXLINE), buf) == 1)
{

}
}
  • 打赏
  • 举报
回复
不可以...
但有个间接的方法
xp1600net 2010-05-29
  • 打赏
  • 举报
回复
不可以这样用
某某9 2010-05-29
  • 打赏
  • 举报
回复
学习!

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧