3 개의 부동을 읽으려고합니다. 나는 이것을 float과 double로 시도했지만, 둘 다 같은 행동을한다.프로그램에서 너무 많은 십진수를 읽음
입력 예 : 첫 번째 줄에
3 1 2
32.0 54.7 -2
3 정수, 두 번째 줄에 3 수레 : 내가 읽고 있어요 어떻게
가 :
vector<int> order;
vector<double> numbers;
unsigned int order_number;
double number;
char input_character;
while (true)
{
scanf("%d", &order_number);
order.push_back(order_number);
scanf("%c", &input_character);
if (input_character == ' ')
continue;
else
break;
}
while (true)
{
scanf("%lf", &number);
numbers.push_back(number);
scanf("%c", &input_character);
if (input_character == ' ')
continue;
else
break;
}
printf("%d %d %d\n", order[0], order[1], order[2]);
printf("%lf %lf %lf\n", numbers[0], numbers[1], numbers[2]);
을 인쇄, 내가 얻을 :
32.000000 54.700000 -2.000000
w 단지 32.0
, 54.7
및 -2
입니다. 내가 얼마나 많은 소수점을 %.x
으로 인쇄 할 지 지정할 수는 있지만 인쇄물에 나와있는만큼 많이 인쇄해야합니다.
또한 while (true)
루프가 있습니다. 왜냐하면 나는 얼마나 많은 숫자를 갖게 될지 모르기 때문입니다.
부동 소수점이 잘못 설계되었습니다. 32.0은 쉽게 31.999999999999999로 갈 수 있습니다. 즉 부동 소수점을 사용하여 입력 한 내용을 정확하게 반환하는 것을 의미합니다 ... – Goz
따라서 문자열 ' – deepmax
'을 "% 2lf"로 변경하려고 시도합니다. – TravellingGeek