• 締切済み

C言語での文字列処理

以下のようなファイルを 年/月/日 時間 値1 値2 値3 値4という風に出力し直したいのです。 1行ごとに段落分けされている場合、 fscanfを使うだけで大丈夫であると思われるのですが、 このように区切られていないデータの処理方法は どのように行えばよいのでしょうか? fgetsを用いてchar型の変数に入れていく方法を考えたのですが、 途中でセグメントエラーが発生しております。 御回答よろしくお願いします。 2004-01-01 00:00:00.000 001 155.00 74.00 -81.00 -3.00 2004-01-01 01:00:00.000 001 346.00 135.00 -211.00 -38.00 2004-01-01 02:00:00.000 001 342.00 138.00 -204.00 -33.00 2004-01-01 03:00:00.000 001 252.00 136.00 -116.00 10.00 2004-01-01 04:00:00.000 001 285.00 142.00 -143.00 0.00 2004-01-01 05:00:00.000 001 512.00 203.00 -309.00 -53.00 2004-01-01 06:00:00.000 001

みんなの回答

回答No.3

> 1行ごとに段落分けされている場合、 > fscanfを使うだけで大丈夫であると思われるのですが、 いえ、1行ごとに段落わけ(改行ですね)されていなくても、fscanf で大丈夫です。 1行ごとのデータだったら作るつもりの、(fscanf() を使った)プログラムを試してみましょう。 そもそも、fscanf() に、(本質的には)改行 という概念はありませんから。 ※もしも、fscanf() の書式指定子に、\n を使っているなら、それだけは削除しましょう。

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.2

1語読んだら1行出力するテキストフィルタを作成して、1語1行の入力をとるプログラムにパイプラインするとか。 そのほうがプログラムを考えやすいかと。 こんな感じ: http://www.ideone.com/CVhAb

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

コードを見せてください。 そうしませんと、解決策の提示のしようがありません。

関連するQ&A