int值的剩余部分是下一个变量

时间:2016-11-20 19:53:27

标签: c++

head

例如,如果我输入std::cout << "Goal Number "<<std::setprecision(1); int Z; cin >> Z; std::cout << "Goal Number is "<< Z <<"\n"; start: std::cout << "Input root "<<std::setprecision(8); float X; cin >> X; float multiply; multiply=X*X; ,则会打印值4.4。但剩下的0.4正在进行下一个变量,即4。有没有办法阻止这个? 提前谢谢。

2 个答案:

答案 0 :(得分:0)

当你使用

cin>>z;

那么你应该输入一个整数而不是一个浮点数。编译器获取整数部分并丢弃第二个变量的另一部分。 例如,如果您输入4ab 然后输出将是4和0,因为ab不是浮点数,但是当你输入4.4然后第一个4进入z是一个整数而休息.4是一个浮点数转到X.所以为了避免它只是在z中输入一个整数一个浮点数,然后它会要求你输入第二个变量

答案 1 :(得分:0)

默认情况下,cin只会读取预期内容。如果指定一个整数作为它所读取的变量,那么它只会读取数值。

为了收集整个数字,您需要读取一个浮点数并转换为您现在打算使用它的任何内容,或者逐行读取并使用字符串流手动解析信息。 (请记住,字符串流仍然只能从&#34; 4.4&#34读取4;如果你告诉它输出到int,那么这是相当多余的。)