在检查该列是否为“常规”之后,我尝试了多种方法来读取新行,但仍然无法使用。它是一个csv
文件,在每个fgets
之后都会用逗号分隔,我需要一个包含其数据的特定列。
这是我的代码:
char fi[1024];
while(!feof(CsvFile)){
//Read
fgets(fi, 1024, CsvFile);
if(strstr(fi, "General") == 0){
fscanf(CsvFile, "%[^\n]s", fi);
printf("%s", fi);
}
fgetc(CsvFile);
}
它不打印我想要的。
读取CSV文件比比您想象的要复杂得多(请参阅https://tools.ietf.org/html/rfc4180)。您必须考虑所有规则。例如,如果单元格包含逗号,则内容必须用"
包围。
但是,您可以实现简体版,该假定:
下面的代码一次读取一行,然后使用strtok
将该行拆分为单元格。
欢迎您,祝您好运!
strtok