-PR-
解決
済み

テキストファイルの区切りが " | " の場合

  • 困ってます
  • 質問No.67245
  • 閲覧数95
  • ありがとう数4
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 35% (69/195)

テキストファイルの読み込みで質問したいのです。
下記のソースを書いた場合、カンマ区切りでファイルを
読み込み、変数に渡す事が出来ますが、それが"|"区切りだった場合は
どのような形で書くべきでしょうか?

FILE *in_file;
char myName1[];
int myName2;

in_file = fopen("test.dat","r");

fscanf(in_file,"%s,%d",myName1,&myName2); /*区切り文字:*/
printf("name1%s name2%d\n",myName1, myName2);

fclose(in_file);

読込みたい情報に合わせて、ソースを下記のように変更しました。
fscanf(in_file,"%s|%d",myName1,&myName2); /*区切り文字:*/
テキストファイルの内容は、 ABC|123 です。
上記の条件だと、myName1に"ABC|123"となってしまいます。
カンマ区切りのソースに直して、データもカンマ区切りに直すと、
myName1=ABC
myName2=123
となるのですが、"|"区切りは、初めてなのでうまく出来ないのです。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.2
レベル14

ベストアンサー率 50% (1122/2211)

ちょっとあっさりし過ぎた回答だったので、一応、解説もしておきます。

参考URLに linux の日本語訳されたマニュアルを示しておきます。
そこの「変換」の章の s の部分を読んでください。今回のことに
からむ部分を引用すると、

  * * *

文字列の入力は、 ホワイトスペースまたは最大フィールド幅(ふ
たつのうち最初に 生じたもの)によって中止される。

  * * *

ということです。

どの開発環境を使っているかによると思うのですが、大体同じ仕様
になってると思ってました。なので、"|" が "," でも期待通りの
動きをしないと思うのですが、senna13 さんがお使いの開発環境は
カンマだけ、特別扱いしているようですね。
お礼コメント
senna13

お礼率 35% (69/195)

ありがどうございました。
いやー、自分も長い事色々なプログラムをしていたのですが、
なにせ、現在の環境には、リファレンスって物がなくて・・・・
本当にありがどうございます。
後は、全てクリア出来る問題ばかりなので、自分で処理します。
投稿日時 - 2001-04-23 16:08:08
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル14

ベストアンサー率 50% (1122/2211)

fscanf(in_file, "%[^|]|%d", myName1, &myName2); です。
fscanf(in_file, "%[^|]|%d", myName1, &myName2);

です。


このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ