答案 0 :(得分:1)
最简单的方法是使用scanf
- 系列,但这在很大程度上取决于数据的组织方式。假设你有三列数字数据,并且你想总结第三列,你可以循环这样的语句:(file
是FILE*
,并使用{{1}打开并且,你循环直到达到文件末尾)
fopen
并总结int n; fscanf(file, "%*d,%*d,%d", &n);
s。如果文件中包含其他类型的数据,则需要相应地指定格式字符串。如果不同的行有不同类型的数据,您可能需要搜索字符串中的分隔符,然后选择第三个间隔。
也就是说,完全不使用C可能更容易,例如perl或awk可能会做得更好,但我想这不是一个选择。
答案 1 :(得分:1)
如果你必须使用C:将整行记录到内存中,去cout“,”直到你到达你想要的列,读取值并求它,转到下一行。
当您达到您的价值时,您可以使用sscanf来阅读它。
答案 2 :(得分:0)
您可能希望首先查看RFC 4180: Common Format and MIME Type for Comma-Separated Values (CSV) Files,然后查找相同的实现。 (请注意,逗号分隔值的概念早于RFC,并且有许多实现不符合该文档。)
我发现:
并不是很多其他人。有很多c ++实现,大多数可能很容易适应c。