printf没有给我正确的输出,也许是scanf的错,请指教

问题描述 投票:0回答:1

编写代码以接受用户输入(例如P0 x1 y1)以嵌套结构形式存储为一个点,其他两个点相同。但是,当使用scanf输入并检查printf时,我得不到正确的数字,例如scanf正在读取其他内容,建议会非常好,谢谢!

float x, x2, y, y2;
char Q, input;

nested triangle;

scanf("%c", &input);

if (input == 'Q' || input =='q')
  return;

else
  {
  scanf(" %c %f%f",&input, &triangle.P0.x, &triangle.P0.y);
  printf("points are\n%f \n%f \n", triangle.P0.x, triangle.P0.y);
}

scanf("%c", &input);

if (input == 'Q' || input =='q')
  return;

else
  {
  scanf(" %c %f%f",&input, &triangle.P1.x, &triangle.P1.y);
  printf("points are\n %f \n%f \n",input, triangle.P1.x, triangle.P1.y);
}
c function printf scanf
1个回答
0
投票

如果写入scanf("%c", &input);,则将从先前输入input的新行中读取。这通常不是您想要的。

因此,请写scanf(" %c", &input);(注意%c之前的空白)以跳过空格。

© www.soinside.com 2019 - 2024. All rights reserved.