1

标题并没有真正做到这个话题公正。其实很简单,就是我的问题。我有一个用 C 语言编写的程序(下面的代码)。我希望这个程序创建一个 exe 文件,该文件可以通过命令提示符控制台窗口运行,并且还将一个文本文件作为参数。所以,长话短说;我需要它在 CMD 的命令行上这样说:

C:\Users\Username\Desktop\wrapfile.exe content.txt

我唯一的问题是让代码正确。我想告诉 Visual Studio:“您应该打开的文件在命令提示符窗口中作为参数给出,没有设置位置......”

我怎么做?

这是我的工作代码(尽管您必须更改 *fp 定义中的一些内容。

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


int main(int argc, char *argv[])
{

    FILE *fp; // declaring variable 


    fp = fopen("c:\\users\\*Put you're PC username here*\\Desktop\\contents.txt", "rb"); // opens the file


    if (fp != NULL) // checks the return value from fopen
    {
        int i;
        do
        {
            i = fgetc(fp);     // scans the file 
            printf("%c",i);
            printf(" ");
        }
        while(i!=-1);
        fclose(fp);
    }
    else
    {
        printf("Error.\n");
    }
}

谢谢大家!

4

1 回答 1

1

正如 Ken 上面所说,main 方法的参数是您从命令行传入的值。argc 是“参数计数”,argv 是“参数值”。因此,要打开从命令行传入的第一个参数,请更改

fp = fopen("c:\\users\\*Put you're PC username here*\\Desktop\\contents.txt", "rb"); // opens the file

fp = fopen(argv[1],"rb");

只需确保在尝试打开输入之前进行错误检查(即 argv[1] 不为空)。另外仅供参考,在您的情况下, argv[0] 将是您的可执行文件的名称。

于 2012-12-06T00:17:33.657 回答