【发布时间】:2014-01-27 02:44:34
【问题描述】:
我对 C/C++ 知之甚少,所以我决定在线学习 MIT 的 OpenCourseWare 课程。大约 8 年前,我学习了两年的 Java 课程,最近有大约 4 年的 MATLAB 经验。
在努力设置编译器后,我设法在 Eclipse IDE 中完成了第一个实验。我可以在 Eclipse 或 cmd 中运行这两个 Hello World 代码,它们将输出我在代码中的任何文本。我在“作业 1”中,我已经在 .C 文件的答案键中进行了修改。
它似乎可以编译并生成 .exe,但是当我进入命令提示符输入两个输入 (int argc, char *argv[]) 时,它运行但不生成任何输出。我正在使用网站上建议的命令:./fibeverse 6 '这真是一次旅行!'。 Eclipse 中只有一个警告,它在 fibverse.c 中,它显示“未使用的变量 'i'”,尽管在下面的两个 'if' 语句中使用了该变量。
我将这一行用于我的 makefile:gcc -Wall -std=c99 fibeverse.c reverse.c fibonacci.c -o fibeverse
有谁知道我是否做错了什么?我不确定错误是我调用 .exe 文件的方式,还是 .exe 生成不正确。
如果需要,我可以发布我的确切文字,除非有必要,否则我不想弄乱帖子。我已经多次检查了解决方案密钥,以确保我没有输入任何错误。
感谢您的宝贵时间,
伊恩
编辑:这是主要内容,它在 cmets 中的发布不是很好:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "fibonacci.h"
#include "reverse.h"
int main(int argc, char *argv[]) {
int i = 1;
#ifdef fibonacci
if (i < argc) {
print_fib(atoi(argv[i]));
i++;
}
#endif
#ifdef reverse
if (i < argc) {
reverse(argv[i], strlen(argv[i]));
i++;
}
#endif
printf("Press Enter to Exit\n");
getchar();
return 0;
}
添加 printf 只是为了确保它没有闪烁输出,没有它它的响应没有什么不同。此外,#ifdef 只是更改为小写,但这也没有改变任何内容。
感谢您的快速回复!
【问题讨论】:
-
如果它说该变量未使用,它就是未使用。您可能正在使用来自另一个范围的同名变量;很难说没有看到你的代码。当然,未使用的变量只是警告,而不是错误,但通常是您应该注意的警告。奇怪的是,您对更改的应用并不完全符合预期的答案。
-
你要我发布所有内容吗?我想知道变量问题是否是其中的一部分。看起来如果“i”有错误,它可能会提前退出 if 语句。答案键有确切的文字,我基本上只是复制和粘贴。所以我认为可能不会有任何解释问题。现在,这是我的主要内容 fibverse.c:
标签: c