所以我必须让 scanf 读取一些由空格分隔的字符串。但是,我事先不知道我需要读取多少个字符串,它可以是 1 到 5 之间的任何地方,但是在输入中按 Enter 后,我似乎无法让 scanf 停止尝试读取。我试过做简单的 %s %s %s %s %s
但正如你可以想象的,在说 1 或 2 个单词后点击 Enter 后,它仍然希望阅读更多内容,然后我也尝试做 %s%*[^\n]%s%*[^\n]%s%*[\n]%s%*[\n]%s%*[^\n]
以便它尝试在换行符后停止,但是那也没有用。
那么让 scanf 能够拥有一些可选输入部分的最佳方法是什么。
谢谢。
编辑:我知道 strtok 和 fgets 我只是想看看是否有办法用 scanf 做到这一点
最佳答案
如何使用 fgets
读取一行,然后使用 strotk
/sscanf
解析它?然后您就可以决定用户输入了多少个字符串。
关于c - scanf 可选匹配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9317701/