gpt4 book ai didi

c - 在 C 中使用 scanf 和循环输入字符或数字的可变长度

转载 作者:行者123 更新时间:2023-11-30 17:38:21 25 4
gpt4 key购买 nike

我希望通过在 while 循环中使用 scanf 来一次性获取用户的输入。输入很可能采用包含字符和 float 的形式:例如2 + 3.4 * 5,我想将数字和字符存储到一个单独的数组中(以便通过函数进一步处理)

这是我到目前为止所想到的:

while (scanf(" %f", &num1) == 1 || scanf(" %c ", &op) == 1) {
printf("%f ----> %c", num1, op);
}

但是我输入的任何字符都会自动转换为“u”,并且如果我输入多个数字,我的数字会打印两次。此外,我不知道如何摆脱 while 循环。 (我尝试在 printf 下面抛出一个中断,但这只允许读取两个输入)

知道如何才能完成这项工作吗?

最佳答案

建议通过fgets()读取一行,但如果想从标准输入读取dirclty,则立即扫描数字和操作码,但根据读取的内容进行打印。

int cnt;
while ((cnt = scanf("%f %c", &num1, &op)) > 0) {
printf("%f", num1);
if (cnt > 1) printf(" ----> %c ", op);
}
printf("\n");

关于c - 在 C 中使用 scanf 和循环输入字符或数字的可变长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22160485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com