将FILE指针发送到函数以进行读取

时间:2011-09-23 09:38:44

标签: c

我已经连续几个小时都在研究这个问题了,我已经搜索过了,我的代码仍然无法正常工作。

如何使用argv[]作为我想要读取的文件从main中的函数读取我的文件?

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


FILE words(FILE *filesToRead)
{
    const char *Open;
    Open = (char *)filesToRead;

    filesToRead = fopen(Open, "rt");
    int line;
    while ((line = fgetc(filesToRead)) != EOF)
    {
        printf("%c", line);
    }

    fclose(filesToRead);

}

int main(int argc, char *argv[])
{
    char *ah = argv[];
    words(ah);
    return 0;
}

2 个答案:

答案 0 :(得分:4)

试试这个:

void words(char *filename)
{
    FILE *filesToRead = fopen(filename, "rt");
    /* ... */
}

int main(int argc, char *argv[])
{
    if (argc > 1)
        words(argv[1]);

    return 0;
}

老实说(请不要被冒犯)你的代码看起来似乎已经跳过了你正在使用的C书中的几章。

答案 1 :(得分:0)

argv[]是一个char *的数组。例如,如果从命令行调用程序为:

my_prog.exe foo bar

然后:

  • argc将为3;
  • argv[0]将指向“my_prog.exe”
  • argv[1]将指向“foo”
  • argv[2]将指向“bar”

因此,在main()函数中,如果您期望一个参数,则需要检查argc的值是否为2,然后从argv[1]中读出您的参数。

相关问题