- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語 中級編)
C言語中級編:整数の変換とエラーハンドリング
このQ&Aのポイント
- C言語中級編では、整数の文字列からの変換とエラーハンドリングについて学習します。
- 提供されたコードは、文字列として読み込んだ整数を変換して表示するプログラムです。
- しかし、エラーメッセージが表示されており、無効な例外ハンドラールーチンが検出されたことが分かります。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
scanf_s("%s", temp); を scanf_s("%s", temp,19); にする。 scanf_sは「%sを指定する場合は、入力バッファのポインタと、入力バッファのサイズを引数に指定する」ことになっています。 この1ヶ月で「まったく同様のエラーで質問している投稿」を3回も見ました。 たぶん、お使いの参考書は「scanf_sの使い方を間違って記載している」のでしょう。 もし宜しければ「このサンプルプログラムが掲載されている書籍の名前、著者、出版社名、ISBNコード、掲載ページ」を教えて頂けませんか?
その他の回答 (3)
- t_ohta
- ベストアンサー率38% (5253/13739)
回答No.4
scanf_s() はマイクロソフトの独自仕様なので、基本的にはWindows系だけで使用できる関数ですね。 汎用的な勉強をしたいのであれば使わない方がいいでしょうね。 Windowsアプリの開発に特化した勉強したいのであれば別ですが。
- cametan_42
- ベストアンサー率62% (164/264)
回答No.3
あと、ちなみに、scanf_s自体はCの仕様には存在しないと思います。 ちと、使用してる処理系の実装依存の話になるんじゃないでしょうか。 (つまり、「C言語」としては使わない方が良いかもしれません)
- maiko0333
- ベストアンサー率19% (839/4401)
回答No.1
scanf_sのパラメータは3つです。 scanfをscanf_sに単純に変えたのではありません。
お礼
いや、しかし私と同じように悩んでる方がいらっしゃるみたいなので、記載させていただきます。著者 柴田望洋 タイトル 明解C言語 中級編 私の環境はVisual Studioです。 書籍の発行は2015年です。
補足
なるほど、サイズを指定しないといけないのですね。 本のタイトルは私の質問のタイトル名でかなり絞れるのでそこからお願いします。