• 締切済み

ファイルでっっっっ!!

またまた質問ですm(_ _)m ファイルに関する質問なんですが。。。。 テキスト内 ---------------------------- a: 546 b: 5343 c: 5 d: 345 e: 3e4r ---------------------------- のような内容のとき文字のみを抽出してresult.txt に保存する方法と 数字のみ抽出して result2.txt に保存する方法を教えてください. fprintf を使えば良いのでしょうか? 初心者でやっとファイルの書き込みがわかってきたところです。 ご協力お願いしますm(_ _)m

みんなの回答

  • PED02744
  • ベストアンサー率40% (157/390)
回答No.2

(3)e: は文字列ではなく数字と文字が交互にあるものですm(_ _)m これだとすると、フォーマットが画一でないので、行読み込みで処理というわけにはいかないですよね? (数字だけがあるつもりで読むと文字も出てくるから) だとしたら、fscanは使えないので、fgetsとかで1行ずつ読み込んで、 1文字目を連番とする 2文字目が:であることを確認する 3文字目以降を1文字ずつチェックして数字だけの場合はそのまま数値とする 数字と文字が交互にある場合は、それなりの対応をする というロジックになるかと思います。 フォーマットが統一されていないのなら、全部自分でロジックを組むしかありません。

noname#45110
質問者

お礼

ありがとうございますm(_ _)m 1行ずつですか・・分かりました(・ω・)/

  • PED02744
  • ベストアンサー率40% (157/390)
回答No.1

要求仕様がわからないので、確認させてください。 (1)1行の項目は「1文字[:]数字列」という風に固定フォーマットである? (2)前のfprintfの質問だと、1行に5個書いてありましたが、1行1個でn行である? (3)5行目のe:は数字じゃなくて文字列ですが、これはOKである? ファイルに書くときはfprintf(); 読み込みはfscanf();でできるとおもいますが、 そもそもテキストからの読み込み部分が質問されていないのですが、どうなんでしょうか?

noname#45110
質問者

補足

(1)1行の項目は「1文字[:]数字列」という風に固定フォーマットですm(_ _)m (2)1行1個でn行ですm(_ _)m (3)e: は文字列ではなく数字と文字が交互にあるものですm(_ _)m fscanf で第2引数の書式設定が fscanf(fp, "%d", &val); で""内が 1つの書式設定しかできない(?)ので現在パニックです。("%d" にするとテキストに文字(列)があるので永遠にプログラムが終了しない? と思っています。) ややこしくてすみませんm(_ _)m

関連するQ&A

専門家に質問してみよう