标题并没有真正做到这个主题正义。它实际上非常简单,我的问题是。我有一个用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");
}
}
谢谢大家!
答案 0 :(得分: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");
在尝试fopen输入之前,请确保执行错误检查(即argv [1]不为null)。另外,在你的情况下,argv [0]的FYI将是你的可执行文件的名称。