如何清除C for循环中的缓冲区? [关闭]

问题描述 投票:-3回答:3

我正在一个涉及结构的学校项目中,并且遇到以下问题:

我创建的结构最多包含50个产品。用户将为每个产品输入INT代码,FLOAT价格,INT数量和CHAR名称[256]。

我遇到的问题是scanf_s("%c", &product.name);溢出“ \ n”。

以下是代码段:Lines 84 -> 88

我希望您了解我的问题,并且可以为我提供帮助。

c struct scanf
3个回答
0
投票

您应该阅读:

scanf(“%s”,name);


0
投票

scanf有它的位置,但这不是读取用户输入的唯一方法,尤其是从stdin ...中读取一行时>

fgets(produse[contor].nume_produs, sizeof(produse[contor].nume_produs), stdin);

也将起作用。

[有关differences and use casesfgets()scanf()的一些信息


0
投票

您应使用%s扫描字符串。\0将自动添加到字符串的末尾。

© www.soinside.com 2019 - 2024. All rights reserved.