申し訳ありません、これはばかげた質問ですが、私はC++を初めて使う人です。すべての入力を出力に正しくコピーしないのはなぜですか?Printfが間違った文字と0を出力しています。
#include <iostream>
#include <iomanip>
#include <limits>
#include <string>
using namespace std;
int main() {
int num1;
long num2;
long long num3;
char char1;
float num4;
double num5;
scanf("%d %ld %lld %c %f %lf", &num1, &num2, &num3, &char1, &num4, &num5);
//input: 211916801 452082285 97592151379235457 p 19856.992 -5279235.721231465
printf("%d %ld %lld %c %f %lf", num1, num2, &num3, &char1, &num4, &num5);
//expected output: 211916801 452082285 97592151379235457 p 19856.992 -5279235.721231465
//actual output: 211916801 452082285 68674564278975280 c 0.000000 0.000000
system("pause");
return 0;
}
なぜ、C++コードの第1位で 'scanf()'と 'printf()'を使用していますか? –
私がcoutを使用すると、すべての小数点以下の桁は印刷されませんが、printfと同様に、それはHackerRankが私に求めていることです(https://www.hackerrank.com/challenges/c-tutorial-基本データ型?h_r = next-challenge&h_v = zen) – kirill2485
'std :: fixed'と' std :: setprecision() '[manipulators](http://en.cppreference.com/w/cpp/)をチェックしてください。 io/manip)。 –