• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:c言語 sscanf の書式についての質問です)

C言語でCSVファイルの読み込み方法についての質問

このQ&Aのポイント
  • C言語でCSVファイルの読み込みをする際に、[ ] で囲った文字列と最初の2つのデータのみを抽出する方法を教えてください。
  • 以下のコードを使用してCSVファイルの読み込みを試みた結果、[ ] で囲った文字列の抽出がうまくいきません。sscanfの使い方が間違っているのでしょうか?正しい動作をするためにはどうすればよいでしょうか?
  • コードの一部を紹介します。csvファイルの一行のセパレータを検出するために、if文を使用しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

[]のなかに入る文字種は限定できるのでしょうか? 英数字に限定なら sscanf( str, "[%[A-Z,a-z,0-9]]\n", structName ); といった具合にしてやればいいでしょう %sの場合 TABや空白、改行までを取得しようとするので ABC]まで読み込んでしまうのだと思います

aneja
質問者

お礼

ご回答ありがとうございます。 教えていただいた方法で、できました!

その他の回答 (2)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

「うまく」と言って誰もがわかるのか? ってこと. ちなみに %[^]] の方がいいかもね.

aneja
質問者

お礼

「うまく」の定義を書くべきでした。初歩的なミスでお手間をとらせて申し訳ありません。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

「[ ] で囲った文字列がうまく抽出できません。」とはどういうことでしょうか? 何をもって「うまく抽出できていない」と判断しているのかわかりません.

aneja
質問者

お礼

質問に記載した入力データに対する実行結果が「[」と「]」で囲った文字列にならなかったので、正しく抽出できていないと判断しました。ご指摘の意味がわかりませんので、ご指摘の補足をお願いします。