2016-06-20 4 views
0

私はCSVで作業しようとしていますが、見つかった限り、列や行を挿入できるオープンソースライブラリはありません。代わりに、私は、各セルの値を取得し、それをセルの右側にコピーすることによってシミュレーションするコードを記述しようとしています。これを行うために、私は右から始めて、左から右に動くようなデータを破壊しないように左に動こうとしています。ここでCSVでC++でセルを読み書きする

は、これまでの私のコードです:

#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 declared\n"); 
    for(k=1;k<5;k++) 
    { 
     printf("k loop entered\n"); 
     for(i=5;i>1;i--) 
     { 
      printf("i loop entered\n"); 
      for(j=1;j<i;j++) 
      { 
       fscanf(qFile, "%2[^,]", input); 
       printf("Input is %s\n", input); 
      } 
      fprintf(qFile, "%s", input); 
     } 
    } 
    fclose (qFile); 
    return 0; 
} 

私はこれをしようとするたびに関数fscanf等、代わりにA1を読んで何度もA1を読み込み、その後、B1、C1、私は取得するにはどうすればよい

これは、セルを横切ってセルを読み取ってから、ラインを下に移動してもう一度やり直すのですか?

ありがとうございます!

EDIT:入力ファイルは、そのセルに対応するデータを持つ最初の4x4セルセットです。

ie。 A1 B1 C1 D1 A2 B2 C2 D2 A3 B3 C3 D3 A4 B4 C4 D4各々がそれ自身のセルに含まれる

+0

これをC++とタグ付けしたので、char配列よりも安全でロバストであるため、 'std :: string'を使用するべきです。 –

+2

あなたは本当にC++を使っていますか?これは、未使用のC++インクルードを2つ並べたストレートCコードのようです。 – NathanOliver

+0

あなたのプログラムは、入力で '、'を探しています。それらはあなたの投稿された入力のどこにありますか? –

答えて

0

私はあなたの入力ファイルに印刷されなければならないとは思わない:

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

これはあなたのファイルが壊れてしまった理由かもしれません。

また、行末をどこで処理しますか?
通常、CSVファイルはテキスト行ごとに1行でフォーマットされます。

関連する問題