有关在命令行中把文件内容显示出来的疑问

sunyuqian 2010-01-02 09:05:36
大家好,这道题要求在命令行中输入文件,然后显示文件内容,我的文件是1.exe,和程序在同一文件夹有两个文件,一个是source.txt,一个是cpy.txt,里面都有内容,我在命令行中输入1.exe source.txt cpy.txt,程序运行了,但没有把文件里的内容显示出来,请高手解答

#include <stdio.h>
#include <stdlib.h>
int main(int argc,char *argv[])
{
char ch;
int i;
FILE *source;
if(argc == 1)
{
printf("没有文件\n");
exit(EXIT_FAILURE);
}
for(i=1; i<argc; i++)
{
if((source = fopen(argv[i],"r")) == NULL)
{
printf("%s打不开\n",argv[i]);
continue;
}
while((ch=getc(source)) != EOF)
{
putchar(ch);
}
if(fclose(source) != 0)
printf("%s关闭出错\n",argv[i]);
}
return 0;
}
...全文
64 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunyuqian 2010-01-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lzh3ng 的回复:]
用你的代码在linux下没有问题。
[/Quote]

我刚才用getc重新试了试,又能用了
lzh3ng 2010-01-02
  • 打赏
  • 举报
回复
用你的代码在linux下没有问题。
sunyuqian 2010-01-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 mstlq 的回复:]
while((ch=fgetc(source)) != EOF)
[/Quote]
在问一下,为什么不能用getc呢?

书上说getc从指针指定的文件中获得一个字符,用他为什么显示不了呢
sunyuqian 2010-01-02
  • 打赏
  • 举报
回复
谢谢了
mstlq 2010-01-02
  • 打赏
  • 举报
回复
while((ch=fgetc(source)) != EOF)
sunyuqian 2010-01-02
  • 打赏
  • 举报
回复
没报错

样子是这样

F:\test\Debug>1.exe source.txt cpy.txt

F:\test\Debug>1.exe source.txt cpy.txt

F:\test\Debug>

回车完就没反映了
sunyuqian 2010-01-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mstlq 的回复:]
文件打开了吗?
[/Quote]

打开了
mstlq 2010-01-02
  • 打赏
  • 举报
回复
文件打开了吗?

69,369

社区成员

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

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