gpt4 book ai didi

c - 了解 Scanf - 处理格式化输入

转载 作者:太空狗 更新时间:2023-10-29 16:02:17 26 4
gpt4 key购买 nike

我正在尝试弄清楚 scanf 是如何工作的。如果我编写这样的代码:

scanf("%s %d %f", name, &age, &wage);

将其作为标准输入:

james 20 34000.25

然后分别打印出姓名、年龄和工资,我得到的正是人们所期望的,与我输入标准输入的内容相同。但是,如果我输入这样的内容:

scanf("%s/%d/%f", name, &age, &wage);

然后我将其作为标准输入输入:

james/20/34000.25

我得到字符串 james/20/34000.25 作为字符串值,0 和 0.00000 分别作为整数和浮点值。我认为 scanf 会像对待第一个版本中的空格一样对待斜杠。如果用户输入斜杠分隔值,我将如何获得它,我可以将这些值适本地分配给变量?

最佳答案

%s 匹配非空白字符(这是贪婪匹配:它不会回溯以查看是否可能有其他匹配)要匹配非正斜杠字符,请使用 %[^/]

(另请注意,scanf 字符串中的空格字符(匹配零个或多个空白字符)与非空格非百分号字符的行为非常不同,例如 '/' (完全匹配 '/')

关于c - 了解 Scanf - 处理格式化输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15330047/

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