【问题标题】:Read csv file using fscanf in C在 C 中使用 fscanf 读取 csv 文件
【发布时间】:2014-09-21 23:48:58
【问题描述】:

我必须使用 fscanf 函数读取一个 csv 文件(我不能使用像 strtok_s 这样的任何其他函数来解析该行)并且我遇到了以下问题。

代码如下:

fp1 = fopen (argv [1],"r");

var = fscanf (fp1,"%d,%d,%[^,]s,%[^,]s",&aux.points,%aux.titles,aux.name,aux.nation);

我正在尝试在屏幕上打印每个参数。整数没有问题,甚至第一个字符串(名称)也没有问题,但下一个字符串(国家)中没有存储任何内容。

我假设第一个 %[^,]s 正在停止整个 fscanf 函数的执行,因此永远不会读取下一个字符串。任何的想法?我已经尝试了一切,但这就是行不通。

【问题讨论】:

  • Reading values from CSV file into variables 的可能重复项。特别是,请参阅 Unwind 的回答。
  • 是的对不起,我检查了那个帖子,但使用了 ppeterka 的答案(这是不正确的)并忽略了 unwind 的答案(这是正确的),认为它们都是相同的。谢谢!

标签: c csv scanf


【解决方案1】:

试试这个作为字符串: "%d,%d,%[^,],%[^,]"

我删除了“s”,因为 [...] 充当说明符。

将 [...] 视为超级 s。

【讨论】:

    猜你喜欢
    • 2011-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    • 1970-01-01
    • 2013-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多