gpt4 book ai didi

c++ - 将 C++ 代码与 C 代码匹配

转载 作者:太空狗 更新时间:2023-10-29 21:22:13 25 4
gpt4 key购买 nike

我正在尝试掌握 C 代码。在这里,我试图用 C++ 中的代码在 C 中复制此代码。或者更具体地说,我正在尝试使用 iostream 和 iomanip 而不是 printf 和 cstdio 将此代码从 printf 转换为 cout。

//C CODE 
#include <cstdio>
#include <cstdlib>
using namespace std;

int main() {
string header_text = "Basic IO";

srand(0);
printf("%-10s::\n", header_text.c_str());
for (int i=0; i<4; i++) {
int number1 = rand()%1000;
float number2 = (float)number1/91.0;
printf("<%3d, %7.4f>\n", number1, number2);
}
printf("\n");
}

现在我想将其转换为 C++。

这是我的尝试:

//C++ code
#include <iostream>
#include <iomanip>
#include <cstdlib>
using namespace std;
int main() {
string header_text = "Basic IO";

srand(0);
cout << setw(10) << left << header_text << "::\n";

for (int i=0; i <4; i++) {
int number1 = rand()%1000;
float number2 = (float)number1/91.0;
cout << "<" <<number1 <<setw(3) << "," <<setw(7) << setprecision(5) << number2 << ">\n";
}


}

除了 10.0549 在 C++ 代码中变为 10.055 之外,它看起来大部分是正确的。知道我的 C++ 代码有什么问题吗?虽然,它可能还有更多错误,因为我对理解 C 还很陌生。

最佳答案

您想使用 std::fixed 和设置精度 4 来复制 printf 的 %.4f:

cout << ... << fixed << setprecision(4)  << number2  << ">\n";

输出:

Basic IO  ::
<383, 4.2088 >
<886, 9.7363 >
<777, 8.5385 >
<915, 10.0549>

参见 here for more info在 std::setprecision 和 std::fixed 上。

关于c++ - 将 C++ 代码与 C 代码匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21049721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com