微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 fscanf 在 C 中使用分隔符的问题

如何解决使用 fscanf 在 C 中使用分隔符的问题

所以假设我在 txt 文件中有一行文本(例如 1234567890 DD.M.YYYY.hh:mm NAMEOFHALL),并且我有大约 2000 行。我想使用 fscanf 将 "1234567890"、""DD.M.YYYY"、"HH:MM" 和 "NAMEOFHALL" 作为单独的字符串提取出来(注意:NAMEOFHALL 没有固定长度,它可以因某些内容而有所不同简称为 A203 至 FSB HALL B)。

这是我用来扫描和查看 4 个单独字符串的部分代码

while(i<lines){
    fscanf(fp,"%11[^ ] %10[^ ] %5[^ ] %[^\n]",polaznik[i].jmbag,polaznik[i].datum,polaznik[i].vrijeme,polaznik[i].dvorana);
    printf("%s#%s#%s#%s\n",polaznik[i].dvorana);
    i++;  
}

其中 fp 是指向 .txt 文件的指针

您可以查看完整代码 here

我在 printf 中使用了主题标签,因为我认为读取中有一些杂散的空格字符,但没有。

我期待 printf 的输出,如:

0246694342#25.1.2014.#12:16#FSB Dvorana C

但我得到:

0246694342FSB Dvorana C#25.1.2014.#12:16#FSB Dvorana C

另外,请不要巧妙地烤我,因为我是在低能量下这样做的,那样我更容易错过明显的错误

感谢所有回复的人。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。