通过C 的CSV读取和写入单元格

Reading and writing cell by cell in a CSV with C++

本文关键字:单元格 读取 CSV 通过      更新时间:2023-10-16

我正在尝试与CSV一起工作,据我发现,没有开源库可以允许您插入列或行。取而代之的是,我试图编写一个代码,该代码将通过获取每个单元格的值并将其复制到右侧的单元格。为了做到这一点

这是我到目前为止的代码:

#include <iostream>
#include <fstream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
int main()
{
    FILE * qFile;
    qFile = fopen ("Testcsv2.csv", "r+");
    int i, j, k;
    char input [80];
    printf("Variables declaredn");
    for(k=1;k<5;k++)
    {
        printf("k loop enteredn");
        for(i=5;i>1;i--)
        {
            printf("i loop enteredn");
            for(j=1;j<i;j++)
            {
                fscanf(qFile, "%2[^,]", input);
                printf("Input is %sn", input);
            }
            fprintf(qFile, "%s", input);
        }
    }
    fclose (qFile);
    return 0; 
}

每次我尝试一次,FSCANF一遍又一遍地读取A1,而不是读取A1,然后是B1,C1等。

如何使此读取单元格读取单元,然后向下移动并再次进行操作?

谢谢!

编辑:输入文件仅仅是带有与其单元相对应的数据的第一个4x4单元格。

即。A1 B1 C1 D1A2 B2 C2 D2A3 B3 C3 D3A4 B4 C4 D4

每个都包含在自己的单元格中的地方。

我认为您不应该打印到输入文件:

    fprintf(qFile, "%s", input);

这可能是您的文件损坏的原因。

另外,您在哪里处理行的末端?
通常,CSV文件是每行文本行的格式。