gpt4 book ai didi

c - 如何仅扫描范围内的数据,而不是保存整个数据?

转载 作者:行者123 更新时间:2023-11-30 17:11:01 25 4
gpt4 key购买 nike

基本上我有数据行和列。我知道我可以使用 fgets 逐行读取,然后用 strtok 标记该行。之后,我可以使用 atoi() 检查最后 2 个标记/值是否在范围内,如果在范围内,我可以将它们存储到一个数组中。然而,我听说 strtok 是一种不好的方法,而 fscanf 似乎是一种更干净的方法。 fscanf 的问题是,如果我使用它,我必须首先将所有值存储在数组中,然后检查哪些值在范围内。由于我有很多行,我不知道数组应该有多大,这会浪费很多空间。有没有办法使用 if 语句进行 fscanf ?

我不知道这是不是一个愚蠢的问题,谢谢。

最佳答案

无论你浪费什么,它都不会超过行的长度。由于您的显然是文本格式,因此 1024 的行长度通常是限制。

因此,在最坏的情况下,您需要(几?)千字节的内存来解析每一行。您可以重用该缓冲区并忽略无用的值。

当然,您可以编写自己的解析器并提高内存效率。

更新

还有这个:scanf :

  • (可选)赋值抑制字符*。如果存在此选项,则函数不会将转换结果分配给任何接收参数。
<小时/>

¹当然可能会有所不同

关于c - 如何仅扫描范围内的数据,而不是保存整个数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32604679/

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