No.4ベストアンサー
- 回答日時:
Caution:
以下の回答はstrtok()の仕様を知らないとドツボにはまる可能性が非常に高くなります。
また、CSVの仕様では「改行込みのデータを許す」ためこの方法だと改行込みデータは解析不能です。
要するに一括で取ってきたファイルの中身を行単位で拾いたい、ということですよね?
であればstrtok()で分割しながら取っていくのが楽でしょう。
char *p; // fread()で読み込んだデータ本体 領域は別途malloc()等で確保
char *t; // 切り出した行の先頭を指すポインタ
...(中略)...
t = strtok(p, "\r\n");
while(t != NULL)
{
...
t = strtok(NULL, "\r\n");
}
No.3
- 回答日時:
行単位に処理したいなら、freadじゃなくて、行単位での読み込み関数を使ったほうがいいです。
Cの標準関数なら、fgetsとか。でも、本気でCSVを処理するなら、行単位ではなくて、文字単位の処理にしなくてはなりませんが。
この回答への補足
文字単位といいますとどうゆうことでしょうか?確かにcsvファイルはダブルクオーテーションなど気をつけないといけないことがあると思います。その解析のことでしょうか?
補足日時:2010/08/16 17:53No.2
- 回答日時:
テキストモードでfopenした場合、改行文字は'\n'、終端文字は'\0'ですから、freadで読み込んだ先のメモリバッファ中の'\n'を探して'\0'に置き換えればよいかと。
バイナリモードの場合はOS等の環境によって改行文字が違うので注意が必要です。
No.1
- 回答日時:
C++ならgetlineの方が楽じゃないかしら。
std::ifstream stream("filepath");
std::string line;
while ( std::getline(stream,line) ) {
//...
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Ruby power BI クエリエディター 〇〇を含む文字列置換 1 2022/10/16 17:34
- UNIX・Linux テキストファイルをページ番号付きでコマンドラインから印刷したい 1 2023/02/22 12:47
- PDF acrobatでwordファイルをpdfに変換すると文字化けする 3 2023/02/10 09:31
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
エスケープ文字の復帰(¥r)と...
-
COBOLの改行
-
C++でのCRLFについて
-
ラベル(スタティックテキスト)...
-
C++で空Enterの入力を判...
-
C言語で改行コードを知る
-
改行を読み飛ばす
-
ファイルから読み取った改行文...
-
JavaMail,本文中の改行について
-
秀丸の正規表現で複数行にわた...
-
最終行の改行について
-
C#の改行について
-
エクセルVBA 文字列領域が不足...
-
テキストファイルから改行コー...
-
文字列型変数に1024を超えた文...
-
【VBA】エクセルで最後の不要な...
-
C++のctime関数復帰値の改行
-
テキストボックス行の桁数を制...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
エスケープ文字の復帰(¥r)と...
-
COBOLの改行
-
C++で空Enterの入力を判...
-
改行について
-
ファイルから読み取った改行文...
-
jsp 改行コードで改行させて表...
-
C++でのCRLFについて
-
エクセルVBA 文字列領域が不足...
-
テキストファイルから改行コー...
-
JavaDoc コメントの改行について
-
最終行の改行について
-
JavaMail,本文中の改行について
-
【VBA】エクセルで最後の不要な...
-
文の改行
-
VBAでCSVをExcelに取り込む時に...
-
ラベル(スタティックテキスト)...
-
改行コード(CR/LF)の設...
-
テキストボックス行の桁数を制...
おすすめ情報