我可能会错过一些非常重要的事情,但我无法弄清楚,我的老师也不知道。我正在多次读取char(y / n)作为控制台输入答案,(我确实知道“%c”的内容。)我设法读取3-4个“ y” -s,但此后失败了,看起来像是NULL,然后再处理其余部分。
功能: scanf用于阅读控制台 fprintf用于写入文件
尽管我尝试了很多方法,但是每次我的变量之一都不能包含真实字符时。当我逐一打印struct元素时,每次都会使同一元素失败。当我尝试读取该结构的一个变量时,它会错误地打印y答案。我也将包含代码,我输入为: 地址:asdf(无论如何) 大小:0 除了最后一个,其余的都是y。我曾经按2020。
实际阅读:
struct s_orders order;
printf("Address: ");
scanf(" %s", order.address);
printf("Size of fields(m^2): ");
scanf(" %d", &order.size);
printf("Paint ordered?(y/n): ");
scanf(" %c", &order.paint);
printf("Revert ordered?(y/n): ");
scanf(" %c", &order.revet);
printf("Water-gas ordered?(y/n): ");
scanf(" %c", &order.proba);
printf("Kitchen creation ordered?(y/n): ");
scanf(" %c", &order.uniq);
printf("Uphol ordered?(y/n): ");
scanf(" %c", &order.uphol);
printf("Expiration date: ");
scanf(" %s", order.date);
结构:
struct s_orders
{
/* data */
char address[100];
int size;
char paint;
char revet;
char proba;
char water;
char uniq;
char uphol;
char date[100];
};
预期结果: “ asdf; 0; y; y; y; y; y; y; 2020;”
哥登: “ asdf; 0; y; y; y;(此处为随机字符); y; y; 2020;”
编辑: -我根本无法集中精力,我忘记要求输入水量变量。感谢您的帮助!