FILE指针“过时了吗?”

时间:2013-05-24 18:50:08

标签: c

您好我已经开始学习一些关于FILE指针以及如何打开文件等等。 我正在阅读Stephen Prata的书“Primer Plus Fifth Edition”(Sams出版社) 我甚至无法获得他们在我的项目中工作的解决方案。

这就是它的外观

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
int byte;
FILE * source;
int filect;


if (argc == 1)
{
    printf("Usage: %s filename[s]\n", argv[0]);
    exit(EXIT_FAILURE);
}

for (filect = 1; filect < argc; filect++)
{
    if ((source = fopen(argv[filect], "r")) == NULL)
    {
        printf("Could not open file %s for input\n", argv[filect]);    
        continue;
    }
    while ((byte = getc(source)) != EOF)
    {
        putchar(byte);
    }
    if (fclose(source) != 0)
        printf("Could not close file %s\n", argv[1]);
}    
    return 0;
}`

输出是:用法:(我的c项目所在的位置)filename [s] 按下任意键继续...为什么会发生这种情况?

1 个答案:

答案 0 :(得分:2)

argv[0] 可以引用运行程序时可执行文件所在的目录。该标准规定如下:

  

如果argc的值大于零,则argv [0]指向的字符串表示程序名称;如果程序名不能从主机环境获得,则argv [0] [0]应为空字符。

argv[1]argv[argc - 1],可以访问通过命令行传递给应用程序的参数。