我试图从用户那里获取一个输入,但不知何故,计算机要求两个输入?

时间:2017-03-04 16:12:00

标签: c++ c input

 void coordinateInput(int in){
     int * input = (int *)malloc(in*(sizeof(int)));
     for (int i = 0; i < in; i++){
         printf("Please enter the x coordinate for control point #%d: ", i); 
         scanf("%d\n",&input[i]);
         printf("Please enter the y coordinate for control point #%d: ", i); 
         scanf("%d\n",&input[i+1]);
     }
 }

在输出中,您可以在第0行后看到它要求另一个输入: Screenshot of output

我希望只获得一个输入,但由于某种原因我最终输入两次。它仅适用于第一种情况。

1 个答案:

答案 0 :(得分:1)

我修复了它从scanf语句中删除'\ n'并将其添加到printf中。

int * input = (int *)malloc(in*(sizeof(int)));
 for (int i = 0; i < in; i++){
 printf("Please enter the x coordinate for control point #%d: ", i); 
 scanf("%d",&input[i]);

 printf("\nPlease enter the y coordinate for control point #%d: ", i); 
 scanf("%d",&input[i+1]);
 //[In output you can see after line 0 it asks for another input][1]}
 printf("%d - %d\n", input[i], input[i+1]);
}

代码应该是这样的。