当我尝试编译这个小程序时,一切都是正确的,但是当我运行它时,我发现了一些问题。例如,我不能在表的第二个元素中键入“c”变量,依此类推。
#include <stdio.h>
struct point{
char c;
int x,y;
};
int main(void)
{
int size = 4;
struct point tp[size];
for(int i = 0; i < size; i++ )
{
printf("entrer le nom du point no %d: ", i+1);
tp[i].c = fgetc(stdin);
printf("x = ");
scanf("%d", &tp[i].x);
printf("y = ");
scanf("%d", &tp[i].y);
}
}
答案 0 :(得分:0)
这里有很多类似的问题,例如:C scanf() and fgets() problem,fgets doesn't work after scanf。
您可以将fgets()用于用户输入,并使用sscanf()解析字符串。
或者你可以在每个scanf()之后使用 fgetc(stdin); 来摆脱'\ n'符号。