- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:c言語 sscanf の書式についての質問です)
C言語でCSVファイルの読み込み方法についての質問
このQ&Aのポイント
- C言語でCSVファイルの読み込みをする際に、[ ] で囲った文字列と最初の2つのデータのみを抽出する方法を教えてください。
- 以下のコードを使用してCSVファイルの読み込みを試みた結果、[ ] で囲った文字列の抽出がうまくいきません。sscanfの使い方が間違っているのでしょうか?正しい動作をするためにはどうすればよいでしょうか?
- コードの一部を紹介します。csvファイルの一行のセパレータを検出するために、if文を使用しています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
[]のなかに入る文字種は限定できるのでしょうか? 英数字に限定なら sscanf( str, "[%[A-Z,a-z,0-9]]\n", structName ); といった具合にしてやればいいでしょう %sの場合 TABや空白、改行までを取得しようとするので ABC]まで読み込んでしまうのだと思います
その他の回答 (2)
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.3
「うまく」と言って誰もがわかるのか? ってこと. ちなみに %[^]] の方がいいかもね.
質問者
お礼
「うまく」の定義を書くべきでした。初歩的なミスでお手間をとらせて申し訳ありません。
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.2
「[ ] で囲った文字列がうまく抽出できません。」とはどういうことでしょうか? 何をもって「うまく抽出できていない」と判断しているのかわかりません.
質問者
お礼
質問に記載した入力データに対する実行結果が「[」と「]」で囲った文字列にならなかったので、正しく抽出できていないと判断しました。ご指摘の意味がわかりませんので、ご指摘の補足をお願いします。
お礼
ご回答ありがとうございます。 教えていただいた方法で、できました!