我正在尝试将参数传递到 xCode 中的命令行。我查找了这个问题,发现我需要将工作目录设置为文件所在的路径。此外,我还必须将参数添加到项目编辑事件可执行文件下的参数选项卡中。我也做过这个。
我添加了 michael.txt 两次。
/* This file is saved as readtext.c, compiled as readtext */
#include <stdio.h>
void main(int argc, char *argv[])
{
FILE *fin;
char buffer[100];
printf("Michael Mazur\n");
if (argc != 2) {printf("Usage: %s filename\n", argv[0]); exit(1);}
fin = fopen(argv[1], "r");
if (!fin) {printf("Unable to open %s\n", argv[1]); exit(1);}
while (fgets(buffer, 99, fin)) fputs(buffer, stdout);
fclose (fin);
}
我不断遇到没有传递两个参数的情况。我还运行了一个小测试程序,它不断返回,无论我添加多少个参数,我都只传递了 1 个参数。有什么帮助吗?
最佳答案
argv[0]
(可执行文件的路径)计入 argc
,因此如果您添加 michael.txt
两次, argc
将为 3。稍长的描述是 here 。 (一般来说,当出现这样的错误时,可以使用调试器检查所有变量的值或将它们打印出来。)
确保两个参数都经过检查并且位于不同的行,如下所示:
此外,将来请提及您正在使用的 Xcode 版本;从你的描述来看,我认为它是 3.x,所以这就是我回答问题的方式。版本之间的用户界面差异很大。
关于C Xcode问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6147820/