我想通过敲出一个快速的 fizzbuzz 应用程序来测试我的 C++ 技能。它的代码发布在下面。然而,当我运行这个应用程序时,发生了一些疯狂的事情。这是我的代码:
#include <iostream>
#include <string>
using namespace std;
bool ismultiple3(int i) {
int res = i%3;
if (res == 0)
return true;
return false;
}
bool ismultiple5(int i) {
int res = i%5;
if (res == 0)
return true;
return false;
}
int main() {
string output;
for (int i = 1; i <= 100; i++) {
output = i;
if (ismultiple5(i) || ismultiple3(i)) {
output = "";
if (ismultiple3(i)) output.append("Fizz");
if (ismultiple5(i)) output.append("Buzz");
}
cout << output;
}
}
因此,当我运行并编译它时,我的整个终端都搞砸了。似乎字符编码正在以某种方式被改变。它仍然正常接受命令,只是看起来关闭。我跑了一个 ls 来证明这一点。
编辑:如果有人遇到这个问题,我最终添加了一个 else 语句并cout << i
在其中执行,因为我的计算机的 g++ 编译器缺乏 C++11 支持。这些函数也被缩短并组合成一个接受 2 个参数的函数,i
并且n
.