我想打印两个三位数乘积的所有回文数。
#include <iostream>
int main() {
for (int i = 999; i > 100; i--) {
std::cout << "Checking numbers for i=" << i << "\n";
for (int j = 999; j > 100; j--) {
int k = i * j;
int temp_k = k;
int reverse_k = 0;
int remainder_k;
while(temp_k != 0) {
remainder_k = temp_k % 10;
reverse_k = reverse_k * 10 + remainder_k;
temp_k /= 10;
}
if (k == reverse_k) {
std::cout << k << "\n";
}
}
}
}
当我单击Terminal > Run build task
时,我得到一个可执行文件和以下输出:
Starting build...
C:/msys64/mingw64/bin/g++.exe -fdiagnostics-color=always -g C:\mydirectory\palindromic.cpp -o C:\mydirectory\palindromic.exe
Build finished successfully.
* Terminal will be reused by tasks, press any key to close it.
当我运行这个可执行文件时,出现一个终端窗口,然后关闭。完全没有输出(这不是由于没有使用std::cin.get();
关闭而导致窗口关闭非常快的情况)。
但是,如果单击Run > Start Debugging
,则会获得VSCode中的所有终端输出,即
[...]
Checking numbers for i=112
84448
65856
48384
42224
29792
23632
Checking numbers for i=111
[...]
我已经尝试重新安装MSYS2,我有一个PATH变量指向C:\msys64\mingw64\bin
。这并没有解决问题。where对于gcc、g++和gdb的输出:
where g++
C:\msys64\mingw64\bin\g++.exe
where gcc
C:\msys64\mingw64\bin\gcc.exe
where gdb
C:\msys64\mingw64\bin\gdb.exe
如果我在VS Code终端中使用g++ -Bstatic -static palindrome.cpp
编译,然后运行a.exe
,它就可以工作。静态链接我的库不是一个很好的解决办法。
1条答案
按热度按时间cgvd09ve1#
使用Visual Studio 2019而不是VS Code允许我编译行为符合预期的可执行文件。重新安装VS Code还允许我编译行为符合预期的可执行文件。