Максим Соколков Asked:2024-10-05 16:13:37 +0800 CST2024-10-05 16:13:37 +0800 CST 2024-10-05 16:13:37 +0800 CST 为什么 scanf 不起作用? 772 我刚刚开始学习 C++,从一开始就遇到了问题。我所写的一切都与培训视频中的完全一样。 #include <iostream> #include <stdio.h> using namespace std; int main() { int a, b; scanf("%d%d", &a, &b); printf("sum = %d\n", a+b); return 0; } c++ 1 个回答 Voted Best Answer Daniel Hunter 2024-10-05T22:07:02+08:002024-10-05T22:07:02+08:00 最有可能的是,您将代码写入扩展名为 .cpp 的文件中。 MSVC 编译器根据文件类型生成一个程序:通过 Vicual C++ 生成一个 .cpp 文件,通过 Visual C 生成一个扩展名为 .c 的文件。因为在您的代码中我看到了纯 C 代码(除了iostream库和std 命名空间),我建议将文件的扩展名从.cpp更改为.c(然后您还应该删除include < iostream > 并使用命名空间 std;)。 如果您需要能够用 C++ 编写,那么像evo一样,我建议您使用 #define _CRT_SECURE_NO_WARNINGS 和 scanf_s (最好一起使用)。 PS 如果只需要用纯C编写,那么最好使用 int main(void) {} 而不是 int main() {}
最有可能的是,您将代码写入扩展名为 .cpp 的文件中。 MSVC 编译器根据文件类型生成一个程序:通过 Vicual C++ 生成一个 .cpp 文件,通过 Visual C 生成一个扩展名为 .c 的文件。因为在您的代码中我看到了纯 C 代码(除了iostream库和std 命名空间),我建议将文件的扩展名从.cpp更改为.c(然后您还应该删除include < iostream > 并使用命名空间 std;)。
如果您需要能够用 C++ 编写,那么像evo一样,我建议您使用 #define _CRT_SECURE_NO_WARNINGS 和 scanf_s (最好一起使用)。
PS 如果只需要用纯C编写,那么最好使用 int main(void) {} 而不是 int main() {}