august 发表于 2007-10-22 22:53:51

关于文件

#include<stdio.h>
void main()
{
    FILE *fp;
    char ch;
    if((fp=fopen("file1.txt","r"))==NULL)
    {
      printf("cannot open this file.\n");
      exit(1);
    }
    while((ch=fgetc(fp))!=EOF)
      putchar(ch);
    fclose(fp);
}
这个读敢文件的程序,为什么我把file1.txt里面的内容全部删掉,但在TC上运行时,没有打印为空时的那段话呢?但在VC++上能打印出来

shawind 发表于 2007-10-23 09:15:17

不清楚VC这个东西是怎么处理的。我手上只有dmc编译器,表现和tc一样。
我想大小为0kb的空文件,不代表他的文件指针也是空的。
if((fp=fopen("file1.txt","r"))==NULL)这句只是判断这个文件存在与否,并没有判断这个文件的大小是不是为空。

rednaxela 发表于 2007-10-23 19:30:05

LZ这次代码好看多了,先赞一下...不过,还是推荐用[ code ] [ / code ]把代码括起来,看起来更方便...

但是,VC++真能打印出那句话么...
把LZ的代码直接复制到一个叫z.c的文件里.在命令行使用cl z.c进行编译,然后执行程序.我就看到了下面的内容:
C:\\>cl z.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.20706.01 for 80x86
Copyright (C) Microsoft Corporation.All rights reserved.

z.c
Microsoft (R) Incremental Linker Version 9.00.20706.01
Copyright (C) Microsoft Corporation.All rights reserved.

/out:z.exe
z.obj

C:\\>z

C:\\>

顺带,当前运行目录下保证有下列文件:
C:\\>dir *.txt *.c *.obj *.exe
驱动器 C 中的卷没有标签。
卷的序列号是 D4D4-C6D5

C:\\ 的目录

2007-10-2319:26               0 file1.txt

C:\\ 的目录

2007-10-1520:27             1,420 test.c
2007-10-2319:26               256 z.c
2007-10-1920:47             1,584 zz.c

C:\\ 的目录

2007-10-2018:44             3,049 fib.obj
2007-10-2319:26               926 z.obj
2007-10-1920:41             1,358 zz.obj

C:\\ 的目录

2007-10-2018:44            48,640 fib.exe
2007-10-2319:26            58,368 z.exe
2007-10-1920:41            48,640 zz.exe

LS说的完全没错.所以不用重复了...||
我只是怀疑VC++是否能重复LZ说的行为,并且验证了一次而已

lw 发表于 2007-10-23 21:58:57

我想LZ在VC试验的时候肯定忘记放那个文件了

FantasyDR 发表于 2007-10-26 02:16:12

也许是工作目录没有设置正确。使用默认的工程设置,在IDE中启动程序,工作目录是设置在project目录的,但程序实际存在于$config目录,比如Debug或者Release什么的。

文件没有摆对地方就会出现诡异的事情。

lo_keyss 发表于 2007-10-26 14:36:41

在tc里要加上getch();

    if((fp=fopen("file1.txt","r"))==NULL)
    {
      printf("cannot open this file.\\n");
      getch();
      exit(1);
    }

rednaxela 发表于 2007-10-26 14:52:26

getch()只是为了在显示了标准输出之后,程序退出前阻塞程序而已吧。如果本来就是在命令行上的话,加不加都无关紧要。
页: [1]
查看完整版本: 关于文件