こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

ファイルからファイル名の読み込むのに手こずっています.
テキストファイルは次のような感じです.

file.txt[
入力ファイル名 "ファイルのパス" サイズ = 640 480
[EOF]]

さらにファイルのパスは「Documents and Settings」などのように間にスペースを含んでいます.

しょうがないので,["]と["]のあいだを1バイトづつ読み込む方法を採用しています.
もっとスマートな方法があれば教えていただきたいです.

投稿日時 - 2008-07-11 18:22:31

QNo.4168718

困ってます

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

#include <stdio.h>

int main(void)
{
char *s = "入力ファイル名 \"ファイルのパス\" サイズ = 640 480";
char p[256];

sscanf(s, "%*[^\"]%*c%[^\"]", p);
puts(s);
puts(p);
return 0;
}

投稿日時 - 2008-07-12 01:21:22

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

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

投稿日時 - 2008-07-11 19:48:21

ANo.1

C前提で回答するのでお使いの言語がC++だとあまり参考にならないですが。

必ず""で括られるのであれば、一旦char配列に読み込んでstrtok()で切り出すのが最も楽ではないかと。
#strtok()は元データを破壊するので(破壊されても問題ない)一時バッファに格納してから使いましょう

ここで肝心なのは「機械的に簡単に処理できるようにテキストファイルの書式を定める」ことですね。

投稿日時 - 2008-07-11 19:47:43

あなたにオススメの質問