• ベストアンサー

テキストファイルに書いてあるファイル名を読み込みたいのですが...

ファイルからファイル名の読み込むのに手こずっています. テキストファイルは次のような感じです. file.txt[ 入力ファイル名 "ファイルのパス" サイズ = 640 480 [EOF]] さらにファイルのパスは「Documents and Settings」などのように間にスペースを含んでいます. しょうがないので,["]と["]のあいだを1バイトづつ読み込む方法を採用しています. もっとスマートな方法があれば教えていただきたいです.

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

  • ベストアンサー
回答No.3

#include <stdio.h> int main(void) { char *s = "入力ファイル名 \"ファイルのパス\" サイズ = 640 480"; char p[256]; sscanf(s, "%*[^\"]%*c%[^\"]", p); puts(s); puts(p); return 0; }

その他の回答 (2)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

Cのプログラムとはそういうものです string.hの関数でも基本は1バイトずつ処理しています。

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

C前提で回答するのでお使いの言語がC++だとあまり参考にならないですが。 必ず""で括られるのであれば、一旦char配列に読み込んでstrtok()で切り出すのが最も楽ではないかと。 #strtok()は元データを破壊するので(破壊されても問題ない)一時バッファに格納してから使いましょう ここで肝心なのは「機械的に簡単に処理できるようにテキストファイルの書式を定める」ことですね。

関連するQ&A