質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

4回答

8123閲覧

C++において、csvファイルを読み込みたい

muton

総合スコア31

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2019/05/07 07:20

C++において、csvファイルを読み込みたいと考えています。
そこで以下のようなコードを考えたのですが、対象とするcsvファイルの
一行一列目しか表示することができません。
対象とするcsvファイルにある全ての値を表示させるにはどのようにすれば良いでしょうか。
宜しくお願い致します。

コード内容

C++

1 char* yy[256]; 2 FILE * file1; 3 file1 = fopen("output.csv", "r"); 4 fscanf(file1, "%s", yy); 5 printf("%s\n", yy); 6 fclose(file1);

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

「getline/fgetsで一行まるっと読みこんでカンマで区切る」を繰り返すのが定石です。

が、カンマで区切られた数の並びならこれで無問題なんだけど '"',','や改行を含んだ文字列
を切り分けるのはそこそこ面倒なので注意。

※ ムダに凝りまくったCSVパーサがコチラ(9年前に書いてた)

投稿2019/05/07 09:32

編集2019/05/07 10:07
episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

muton

2019/05/10 09:20

回答ありがとうございます。 参考にさせて頂き、全ての行を読み取ることが出来ました。
guest

0

ベストアンサー

ただ単に表示したいだけなら、fgetcで1文字ずつEOFまで読み込みつつ出力すればよいかと。
1項目ずつ改行したいのであれば、カンマか改行コードが来たら改行するようにすればよいです。

1項目を1項目として認識したい(後々の処理のために)のであれば、1行まるっと読み込んでから、strtokで分解すればよいです。

ちなみにこれchar* yy[256];間違ってますので。
*は要りません。
*があると、char型のポインタを256個用意する意味になってしまいます。

投稿2019/05/07 08:27

ttyp03

総合スコア16998

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

muton

2019/05/10 09:21

回答ありがとうございます。 参考にさせて頂き、全ての行を読み取ることが出来ました。 一番参考にさせて頂いたため、ベストアンサーとさせて頂きます。
guest

0

こんにちは。

C++でcsvファイルを読むというテーマは結構たくさんの解があります。

C++でCSVファイルを読み込むは短いので読みやすいです。
getlineはsplitに使えるのテクニックを使っているようです。

投稿2019/05/07 08:15

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

muton

2019/05/10 09:21

回答ありがとうございます。 参考にさせて頂き、全ての行を読み取ることが出来ました。
guest

0

fgetsで1行読み込んで、全行読み込むまでループさせましょう

1行読み込んだ後は、コンマ区切りで文字列を分解すればよろしい

投稿2019/05/07 08:02

編集2019/05/07 08:04
y_waiwai

総合スコア87747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

muton

2019/05/10 09:21

回答ありがとうございます。 参考にさせて頂き、全ての行を読み取ることが出来ました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問