CでCSVファイルを扱う
いつもお世話になっております。
今回はCSVファイルの扱いについてお聞きしたいです。
現在、
"hoge","hogehoge","…","…"
というようなCSVファイルを扱いたいと思い、いろいろ試しているのですがなかなかうまくいきません。
CSVの各行をgetlineで取得して、カンマで分けるだけならできたのですが、","のまとまりで分けたいのです。現在は文字で分割はできるのですが文字列で分割する方法がわかりません。
","で分けたい理由はたとえば"hoge,hoge"という文字列をカンマで分けてしまうと二つに分かれてしまいそれを避けたいです。
分割点の前後の文字から判断しようともしてみましたがうまくいきませんでした。
アドバイスなどありましたらご教授願います。
現在は以下のようになっております。
ifstream ifs;
string temp;
LPCTSTR str;
ifs.open("test.csv", ios::in);
while(getline(ifs, temp))
{
str = strtok(const_cast<char*>(temp.c_str()), _T(","));
printf("%s\n", str);
while(str != NULL)
{
str = strtok(NULL, ",");
if (str != NULL)
{
printf("%s\n", str);
}
}
}
以上のもので
CSVの"1","2","3","4" が"1"と"2"と"3"と"4"になります。
これを1と2と3と4にしたいです。
よろしくお願いします。
環境はWindowsXP VisualStudio6.0 MFC未使用 です。お願いします。
お礼
魔法のような std:: でした。 何時変わったのでしょうか とても助かりました。 今後ともよろしくお願いします。