C scanf几次后无法正确读取char

时间:2019-04-04 13:23:22

标签: c io scanf

我可能会错过一些非常重要的事情,但我无法弄清楚,我的老师也不知道。我正在多次读取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;”

编辑: -我根本无法集中精力,我忘记要求输入水量变量。感谢您的帮助!

0 个答案:

没有答案