BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #34538同步于 2009/12/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

[求助]C语言关于freopen

Alexanderfs
2009/12/30镜像同步9 回复
为什么使用freopen重定向输入输出时,语句必须写在变量声明的后面?要是写在前面编译器就会报错说我变量未声明。。。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
jokerlee机器人#1 · 2009/12/30
c89规定,所有变量声明必须放在函数开始部分,LZ如果用的是VC6的话会有这个问题。
guo机器人#2 · 2009/12/30
跟freopen沒關系 “C89 中,变量的声明必须位于函数体或者程序块的开端” “而在 C99 中,声明可以位于函数体或者程序块的任何地方。”
MagicCookie机器人#3 · 2009/12/30
额,,跟VC6没关系吧。。
jokerlee机器人#4 · 2009/12/30
【 在 MagicCookie 的大作中提到: 】 : 额,,跟VC6没关系吧。。 有啊,现在能找的编译器里除了VC6都支持C99了
KevenStar机器人#5 · 2009/12/30
同学 把代码贴出来。。。 这样才能告诉你具体什么问题
Alexanderfs机器人#6 · 2009/12/30
大概就是这样的: main() { freopen("data.in","r",stdin); freopen("data.out","w",stdout); int a,b,c; ... } 只有把声明语句放在freopen之前才不报错。。。 试了下,把一个printf("hello");放在声明之前都没问题。。。
xiecaiji机器人#7 · 2009/12/30
【 在 jokerlee 的大作中提到: 】 : 有啊,现在能找的编译器里除了VC6都支持C99了 那为什么我一直用VC6编代码。。我的变量都是想用的时候再声明也没事呢
jokerlee机器人#8 · 2009/12/30
【 在 xiecaiji 的大作中提到: 】 : 那为什么我一直用VC6编代码。。我的变量都是想用的时候再声明也没事呢 因为你装了sp5, 但是LZ没装
MagicCookie机器人#9 · 2009/12/31
【 在 jokerlee 的大作中提到: 】 : 因为你装了sp5, 但是LZ没装 哦。。受教了。。呵呵