
http://oshiete1.goo.ne.jp/kotaeru.php3?q=2361151
で、質問させて頂いた者です。
先日は大変にお世話になりました。
先日の質問の続きという感じなんですが…
------------------
「ex」ファイルのデータ
41 4352
42 2341
43 5411
---------
これらのデータを
kihokyu[1].tosi=41
kihokyu[1].kan=4352
kihokyu[2].tosi=42
kihokyu[2].kan=2341
という感じで格納したいのです。
------------------------
回答者の方にご指導して頂いたように、
・
・
・
while(fgets(buff,sizeof buff,fp) != NULL){
if ( i > 50 ){
break;
}
kihokyu[i].tosi = atoi(strtok(buff , " "));
kihokyu[i].kan = atoi(strtok(NULL , " \n"));
printf("%d\n",kihokyu[i].tosi);
i++;
}
というstrtok関数を使ってみました。
ところが
41
42
43
と、表示されたあと
強制終了になってしまいます。
>kihokyu[i].kan = atoi(strtok(NULL , " \n"));
を削除すると
スムーズに処理が終了します。
>printf("%s\n",NULL);
と、「NULL」の値を調べたところ
「{NULL}」と表示されました。
たぶん、strtok関数の使い方がおかしいと思うのですが
ご教授して頂けたら幸いです。
No.3ベストアンサー
- 回答日時:
> たぶん、strtok関数の使い方がおかしいと思うのですが
strtokの使い方はおかしくありません。たぶんstrtokに喰わせているデータの
問題でしょう。
atoi(strtok
なんて横着せずに、strtokの戻り値のチェックをしてみては?
#すでに言われていることですが。
> >printf("%s\n",NULL);
> と、「NULL」の値を調べたところ
> 「{NULL}」と表示されました。
何をしようとしてこのようなことを調べたのでしょうか?
strtokの第一引数にNULL を渡したときの動作を理解していれば
こんなことを調べるのは無駄だということだとわかると思うのですが。
どうせやるなら atoi(NULL)をやってみてほしかったですね
#プログラムが落ちると思うのでやらないでいいです。
文字列→整数値の変換をするのなら、atoiなんて前時代的な関数を使わないで
strtolを使いましょう。そうすればstrtokなんていうこれまたobsoleteな
関数を使う必要もなくなります。
最後に
> ご教授して頂けたら幸いです。
「教示」です。
参考URL:http://www9.plala.or.jp/sgwr-t/lib/strtok.html,h …
ご返事有り難うございました。
色々なご指摘
大変に参考になりました。
strtol関数は
strtokが上手く行ってから
試してみたいと思います。
No.2
- 回答日時:
43 5411\n
[EOF]
か
43 5411[EOF]
の違いでfgets がデータがないのに空読みしている(ループに入ってしまう)
というようなことじゃないでしょうか
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
wordの差し込み印刷で文字...
-
excel access連携 このテーブル...
-
json_encodeが表示しない
-
Windowsのマクロプログラムで、...
-
DTOとEntityの差は何ですか。
-
Strutsで画面に表示した値の再...
-
「取得先」という表現について
-
Dosブロンプトでtabを出力したい
-
shシェルスクリプト 空白行の...
-
findstrのerrorlevel
-
バッチファイルでpingの結果を...
-
開始と終了を指定して、その間...
-
classの再定義エラーについて
-
phpでcookieがうまく保存されない
-
Google chart API 、PHP、MySQL...
-
ローカルのコンピュータ名を取...
-
ファイル名に日付の挿入
-
vb6で、特定のフォルダを常時監...
-
Access グループごとのページ...
-
オブジェクトの中身の判定(PHP)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#】DataGridViewの最大列数...
-
wordの差し込み印刷で文字...
-
DTOとEntityの差は何ですか。
-
excel access連携 このテーブル...
-
WordでExcelデータを差込...
-
C#でのForm間のデータ受け渡し...
-
★お手上げ状態です。助けてくだ...
-
IDに欠番があった場合のupdate処理
-
携帯の対応について質問!!
-
VBA内でのGetPixelを使用した時...
-
htmlやCGIでのデータの送信につ...
-
JavaからPHPへの値の受け渡し
-
Amazon APIについて
-
ASPでの検索画面の作り方について
-
INIファイルに一括書き込みを行...
-
「外部データの取り込み」とい...
-
VB6.0とスプレッドシート
-
blog トラックバック機能
-
TCPでデータを受け取ってそれを...
-
Windowsのマクロプログラムで、...
おすすめ情報