大头飞飞
2020-09-26 15:23
采纳率: 100%
浏览 99

请教各位大神关于C语言fopen()文件打开的问题

问题: 在windows系统命令行中运行编写的程序时,总是提示无法正常打开文件。
程序如下:
//reducto.c
//reduce the original file by 2/3
#include
#include
#include
#define LEN 100

int main (int argc, char *argv [])
{
FILE *in, *out;
int ch;
char name[LEN];
int count = 0;

if (argc < 2)
{
fprintf(stderr, "Usgae: %s filename\n", argv[0]);
exit(EXIT_FAILURE);
}

if ((in = fopen(argv[1], "r")) == NULL)
{
fprintf(stderr, "I couldn't open the file \"%s\"\n", argv[1]);
exit(EXIT_FAILURE);
}

strncpy(name, argv[1], LEN - 5);
name[LEN - 5] = '\0';
strcat(name, " .red");
if ((out = fopen(name, "w")) == NULL)
{
fprintf(stderr,"Can't create output file.\n");
exit(3);
}

while (ch = getc(in) != EOF)
if (count++ % 3 == 0)
putc(ch, out);

if (fclose(in) != 0 || fclose(out) != 0)
fprintf(stderr, "Error in closing files.\n");

return 0;

}

visual stdio项目文件以及文本文件的位置
我将visuastdio 的项目文件以及准备用于打开的文本文件均放在桌面上,如下截图:
图片说明

windows命令行运行的页面以及结果
图片说明

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • threenewbee 2020-09-26 15:46
    已采纳

    看看是不是你的系统隐藏了扩展名,实际上文件名是 exercise.txt.txt

    打赏 评论
  • hushui 2020-09-26 16:46

    大哥, 你参数名字写错了 Administrator 你的argv[1]文件名Administrato少了一个r

    2 打赏 评论

相关推荐 更多相似问题