gpt4 book ai didi

C - 带有可选 int 的 scanf 字符串

转载 作者:太空宇宙 更新时间:2023-11-04 05:50:31 24 4
gpt4 key购买 nike

我正在做一个项目,但我似乎想不出一种方法来读取一个字符串,其中的 int 并不总是存在。

例如:我有 2 个变量

int argument = 0;
char instruction[16];

输入是:

"string" 57

我想在指令中加入“string”,在参数中加入 57。这个我可以用

scanf("%s %d", instruction, &argument);

问题是输入可以没有数字,即

"string"

然后我想在指令中放入“string”并将参数保留为 0。但是该程序在“字符串”之后需要一个数字,并且在获取它之前不会继续。

当我可以有 2 种不同类型的输入时,如何从标准输入读取输入?我尝试了多种解决方案,但都没有奏效。

谢谢

最佳答案

您可以通过不尝试直接解析标准输入来做到这一点。取而代之的是你

  1. fgets读取一行输入.
  2. 尝试将该行解析为整数(可能使用 sscanf ):
    • 如果你成功了,你就有了你的整数。
    • 否则你有原始字符串。

关于C - 带有可选 int 的 scanf 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43430484/

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