对不起,如果这是一个愚蠢的问题,我是C++的新手.为什么不正确地将所有输入复制到输出?
#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;
}
Run Code Online (Sandbox Code Playgroud)
因为你有&一些不是你想要的变量.
printf("%d %ld %lld %c %f %lf", num1, num2, &num3, &char1, &num4, &num5);
Run Code Online (Sandbox Code Playgroud)
应该
printf("%d %ld %lld %c %f %lf", num1, num2, num3, char1, num4, num5);
Run Code Online (Sandbox Code Playgroud)
由于您传递的值与格式说明符不匹配,您的编译器应该已经警告过此.如果没有,请打开/增加编译器警告.
| 归档时间: |
|
| 查看次数: |
138 次 |
| 最近记录: |