【发布时间】:2021-11-14 13:18:21
【问题描述】:
所以我有这段代码
#include <stdio.h>
#include <string.h>
int main()
{
int i;
printf("What's your number?\n");
scanf("%d", i);
return 0;
}
每次我尝试在输出中运行它时,我什么都看不到,它也没有尝试接受我的输入,它看起来像这样
[Running] cd "c:\Users\bauti\Downloads\ENGG-1410\" && gcc Assignment_1.c -o Assignment_1 && "c:\Users\bauti\Downloads\ENGG-1410\"Assignment_1
没有别的。
因为我使用的是 Code Runner,所以我决定去 File -> Preferences -> Settings -> Code-runner: Run in terminal,尝试通过终端运行我的代码,但是当我这样做时,我会收到以下消息:
$ cd "c:\Users\bauti\Downloads\ENGG-1410\" && gcc Assignment_1.c -o Assignment_1 && "c:\Users\bauti\Downloads\ENGG-1410\"Assignment_1
bash: cd: c:\Users\bauti\Downloads\ENGG-1410" && gcc Assignment_1.c -o Assignment_1 && c:UsersbautiDownloadsENGG-1410"Assignment_1: No such file or directory
我的代码没有执行。所以现在我很困惑我应该做什么。我什至尝试将 VSCode bin 路径添加到 path 环境变量中,但仍然没有解决方案。如果有人可以尝试帮助我,将不胜感激。
【问题讨论】:
-
scanf("%d", i);->scanf("%d", &i); -
在 C 中,一切都是按值传递的——一个函数接收你传递的东西的副本。如果您编写一个接受参数的 C 函数,然后尝试更新参数,则您需要将指针传递给该对象 - 指针的副本被传递给函数,但它仍然指向同一个位置,因此指针可以更新。因此,对于 scanf,您希望
i更新,这意味着您需要传递一个指针。 -
在终端中运行时,您有一个错误的引用:
"c:\Users\bauti\Downloads\ENGG-1410\"Assignment_1,它应该在最后,在1之后。事实上,\之前的\被视为特殊字符,其含义是“保持后面的"原样”。这就是为什么\"被"替换,显然该文件不存在。 -
了解如何进行扫描
-
@JerryJeremiah 但是错误消息提到
ENGG-1410"Assignment_1,其中反斜杠消失了,这显然不是故意的
标签: c windows visual-studio-code