首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用@ as的扫描量测仪

使用@ as的扫描量测仪
EN

Stack Overflow用户
提问于 2014-08-01 02:59:16
回答 1查看 80关注 0票数 0

使用“@”作为sscanf中的标记符,我没有得到预期的结果。

示例:

代码语言:javascript
复制
#include <stdio.h>
int main()
{
        char buf[512], scan_buf1[512], scan_buf2[512];
        sprintf(buf, "abc@def");
        sscanf(buf, "%s@%s", scan_buf1, scan_buf2);
        printf("Scanned buffer1 - %s scan buffer2 - %s\n", scan_buf1, scan_buf2);
}

Expected op:
Scanned buffer1 - abc scan buffer2 - def

Actual op:
Scanned buffer1 - abc@def scan buffer2 -

我应该对"@“使用一些特殊的语法吗?我在手册页上什么也看不见。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-01 03:03:50

如果您阅读 (and family) reference,您将看到"%s"格式读取

非空格字符序列

这意味着"%s"将读取字符,直到到达空白为止。由于输入中没有空白,所以它将全部读入第一个字符串。

您可以通过使用"%["格式来解决这个问题:

代码语言:javascript
复制
sscanf(buf, "%[^@]@%s", scan_buf1, scan_buf2);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25072206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档