- 締切済み
全角と半角文字が混在している文字列
このような拡張子は.csvのデータから、各データを構造体に 入れていきたいのですが、うまい読み込み方が思いつかず困っております。読み込み元はこんな感じです。 [ 2007年05月30日 ] "2007年05月30日(土) 13:07" "#0001-01" "人数 1名" "スパゲティー大盛り \2,000" "内税 (\1,905) \95" "合計 \2,000" "2007年05月30日(土) 13:12" "#0001-01" "人数 2名" "ピザ" "@1,000x2点 \2,000" "内税 (\1,905) \95" "合計 \2,000" "2007年02月17日(土) 13:23" "#0001-01" "人数 3名" "アイスクリーム \900" "ピザ" "@1,000x2点 \2,000" "内税 (\2,762) \138" "合計 \2,900" 後に売上の合計、ソートをするため「,」の除去、全角数字の半角化はできるのですが、そこからの各データの分け方、格納方法が思いつきません。 fgetsはきっちり指定したバイト数を読み込み、次の行まで読み込んでくれました。なぜかtxtで開くと横にすべてつながった状態で開いてしまいます。 fscanfは調べてて少し問題ありの関数、というような書き込みを見たような気がするので試しておりません。なるべく避けたいです。 今はfgetcで ”から ”までの範囲を読み込むという方法を試していますが、二次元配列に入るのを嫌がっているので、それを説得中です。 長くなってしまいましたが、よろしくお願いいたします。
お礼
私の説明が下手でご迷惑おかけします。 txtで開くというのは、メモ帳で開くという意味です。メモ帳もエディターでした。スイマセン。 エクセル、オープンオフィスなどでひらくと、一行ごとに改行されて 表示されるのですが、メモ帳で開くと、改行されずに横につながって表示されてしまいます。 私がカンマを取り除いて、csvファイルを破損させたといわけではなく、最初からこのファイルはカンマでデータを分けていません。 カンマは¥1,000などの表示に使われてます。 csvという形式で保存されてはいますが、csv形式といえる書き方はされていません。 よろしければ、一行ごとにstrtok関数で分けた後、分けたデータの保存先を判断するコードのサンプルなど頂ければありがたいです。 日時は日時用の変数へ、 商品名は商品名用の変数へ、 単価は単価用の変数へ、 合計は合計用の変数へ、 今、ちょうどこの部分で悩んでいるのでよろしくお願いします。