Я пытаюсь понять C-код. Здесь я пытаюсь реплицировать этот код в C с кодом на C++. Или, в частности, я пытаюсь преобразовать этот код из printf в cout с помощью iostream и iomanip вместо printf и cstdio.Соответствие кода на C++ с кодом C
//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.
Оригинальный код уже смешивает типичный [тег: c] код с [тег: C++] ?? –
Исходный код - C++, а не C. – nmichaels
Возможны небольшие различия в реализации выходной точности или вы не используете точные эквиваленты. –