gpt4 book ai didi

c - 有什么方法可以在 C 中的 fscanf 中包含原始参数

转载 作者:行者123 更新时间:2023-11-30 14:28:44 24 4
gpt4 key购买 nike

我正在尝试看看是否可以

fscanf(inputSTREAM, "$%s$", out) 

我也可以返回 $ 符号 - 有办法吗?

最佳答案

我认为没有办法使用 scanf() 系列函数检索带有美元符号的字符串以及它们之间的非空白字符串。最接近的方法可能是使用扫描集,但扫描集与正则表达式不同,您需要一个正则表达式来指定您要查找的模式。

<小时/>

实际上,您可能可以使用以下方法将第一个美元符号放入字符串中:

fscanf(inputSTREAM, " %1[$]%[^$]%*[$]", &out[0], &out[1]);

即使您知道字符串的确切长度,也无法对后一个美元符号使用相同的特技。问题是您需要用第二个美元符号覆盖字符串末尾的 null,并且您需要在字符串后面有一个 NUL '\0'。添加最后一个美元比在字符串的开头插入第一个美元要容易得多。第三个扫描集包含一个赋值抑制“*”,并且最后需要一美元。格式中的前导空格会跳过空格。

这不是保证行为;第一个转换将在 out[1] 上写入 NUL,第二个转换将在 out[1] 上写入字符串,但 C 标准不保证它会起作用的。

#include <stdio.h>
int main(void)
{
char out[20];

scanf(" %1[$]%[^$]%*[$]", &out[0], &out[1]);
printf("<<%s>>\n", out);
return 0;
}

关于c - 有什么方法可以在 C 中的 fscanf 中包含原始参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5630805/

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