【发布时间】:2013-06-28 07:30:15
【问题描述】:
我尝试了一些基于 C 的问题,但陷入了这个特殊问题。根据我的说法,old.out 文件应该用我们使用 scanf 输入的任何内容写入,因为 fprintf 将输入分配给文件指针,但令我惊讶的是,我看到没有任何内容被写入 old.out,因为后面的 while 循环是没有被执行。这是怎么回事?这与我对 fprintf 函数的误解有关吗?我已经粘贴了下面的代码。
#include<stdio.h>
main()
{
FILE *fp;
char a;
fp=fopen("old.out","w");
if(fp==0)
printf("File opening error");
else
{
for(scanf("%c",&a);a!=EOF;scanf("%c",&a))
fprintf(fp,"%c",a);
fclose(fp);
fp=fopen("old.out","r");
while(!feof(fp))
putchar(getc(fp));
}
return 0;
}
【问题讨论】:
-
intmain()... -
像这样将复杂的表达式塞进你的
for通常被认为是不好的做法...... -
@OliCharlesworth:是的,我也觉得这很烦人,但在印度,大多数公司都会在校园面试的书面轮次中提出这样的问题。这也是adobe qualcomm写的一个这样的问题。如果我必须有资格参加面试,我只能准备这些问题。
-
@KavishDwivedi 不合逻辑。为什么你必须用一个过于复杂的解决方案来解决一个简单的问题?
-
@H2CO3:这个其实是高通笔试的题。我刚刚解决了他们的一篇论文,我被困在了这篇论文中。