gpt4 book ai didi

c sscanf 检查一行中是否有多个参数?

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

某个库中是否已经内置了一些 C 技巧,或者我是否必须编写一些东西来手动检查它?以下代码帮助我检测读取的参数数量是否太少,但不会太多,因为 sscanf 会在例如 3 处停止,即使该行中有 5 个参数并转到另一行。

 if(sscanf(buffer, "%d", &elements->start_state_) != 1)
{
//code
}

附言请记住,我正在逐行输入。

如果读取 0 个或 1 个参数,该程序将运行良好,但未检测到超过 1 个,这对我来说是个问题。

最佳答案

如果我没理解错的话,你想知道一行中最后使用的参数之后是否有任何内容 - 我假设你是通过调用 fgets.

面对这个问题,我通常所做的只是尝试解码最后一个参数后的单个非空白字符:

char dummy[2]; /* save space for terminating null */
...
if(sscanf(buffer, "%d%1s", &elements->start_state_, dummy) != 1) {
...
}

如果 sscanf 行中没有任何内容(参数太少),将返回一个太低的值,如果至少有一个非空参数,它将返回 1 太高。

关于c sscanf 检查一行中是否有多个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35505202/

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