0 c arrays embedded loops while-loop
我正在为我的嵌入式C类工作,我遇到了一个我似乎无法解决的问题.我的问题是++i只会改变一次.第一次循环运行i时0,第二次i是1在此之后,无论循环循环多少次,它i都将始终如此1.任何人都知道问题可能是什么?我把它放进printf("%d\n", i);去看是否有i变化.
void addCar() {
char choice = 'y';
int i = 0;
while((choice == 'y' || choice == 'Y') && i < MAX_CAR) {
printf("Make: ");
scanf("%s", fleet[i].make);
getDate(1, i);
getDate(2, i);
printf("Purchaseprice: ");
scanf("%lf", &fleet[i].purchasePrice);
++i;
printf("%d\n", i);
printf("Do you want to add another car? (Y/N)");
scanf("%s", &choice);
}
}
Run Code Online (Sandbox Code Playgroud)
您不能这样做scanf("%s", &choice):选择"缓冲区"中没有足够的空间来容纳您扫描的字符串 - 扫描的字符串长度至少为2个字符,终止"\ 0",并且覆盖堆栈中的其他变量.
请scanf("%c", &choice)改用.