gpt4 book ai didi

c - 在 C 中打开文件后 fscanf 出现问题

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

我正在编写一个打开文件并读取和存储数据的程序。

数据文件的布局显示为 name;id#;score;number

即 Bobby Ray Reynolds;111;10%;1

如何将这些字段存储在不同的变量中。这就是我正在尝试的:

    fscanf(fp, "%s %d %d %d", name,id,score,number);

最佳答案

fscanf%s 格式说明符的问题是它一到达空格就停止。考虑到您的格式,这是不正确的:您正在查找最多分号的数据读取。

这可以通过 %[^;] 格式来实现。完整的格式字符串还将使用分号作为 %d 说明符之间的分隔符以匹配您的文件格式,如下所示:

fscanf(fp, "%32[^;];%d;%d%%;%d", name, id, score, number);

注意上面的32。此限制应对应于您想要阅读的最长名称。如果 nameN 个字符的数组,则使用 N-1 作为 % 之间的值[^;] 以避免缓冲区溢出。还要注意第二个 %d 之后的 %%。这是匹配百分号所必需的(fscanf 的规则要求第二个 %)。

关于c - 在 C 中打开文件后 fscanf 出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52194539/

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