C言語のおさらい scanf関数の使い方

Scanf() 関数

scanf() 関数は、キーボードから入力するときにつかう標準関数。
キーボードから入力されたデータを指定した形式で変数に格納します。
基本的はこのような感じで書く。

  • scanf("書式" ,&変数名);
ただし、「"書式1"」の中に文字を記述することができない。
入力を要求するメッセージなどが必要な時は、scanf() 関数の前にprintf() 関数でメッセージを表示させる。

書式の指定はprintf() 関数と同様に「」と特定の文字で指定する。

  • %d  ・・・整数を10進数で入力する
  • %u  ・・・整数を符号なしの10進数で入力する
  • %c  ・・・1文字を入力する
  • %s  ・・・文字列を入力する
  • %f  ・・・float型での実数を入力する
  • %lf ・・・double型での実数を入力する


Visual Studio 2019でscanf()を使うときの注意点

以下のソースコードを記述してビルドすると、通常はエラーが発生してデバッグができない。

#include <stdio.h> 
int main(void) {

 //変数の宣言
 int x;
 
 //入力
 printf("数値を入力→");
 scanf("%d", &x);

 //出力
 printf("入力された数値は%dです\n", x);
 return 0;
}

これは、Visual Studio 2019のデフォルトの設定ではscanf() 関数が使えない。
なので、プロパティページから設定の変更を行っていく。

①[プロジェクト]→[プロパティ]からプロパティページを開く。

②[C/C++]→[全般]から、SDLチェックを「はい」から「いいえ」に変更して適用をクリック。


③[C/C++]→[コード生成]から、ランタイムライブラリを「マルチスレッドデバッグ」に変更して適用をクリック。


④2つの変更ができたら確認して、OKをクリックする。

これで、ビルドした時にエラーが発生しなくなる。

デフォルトの設定でSDLチェックを「いいえ」にしておくことはできない。
マイクロソフトのセキュリティの考え方によるものなので、どうすることもできない。

プロジェクトを立ち上げたら、毎回この設定の変更をしよう。

まとめ

上記のソースコードを入力して、プロパティの設定の変更して、デバッグした結果が以下のようになる。


まとめてデータを入力する方法があるが、今回はブログでまとめない。

プログラミングを勉強し始めの頃は1回のscanf()で1個のデータを入力するようにしておこう。




コメント

このブログの人気の投稿

STM32CubeIDEに日本語化プラグインを導入する

STM32F401でLチカをする(LED点灯)

STM32F401-Nucleoでシリアル通信をやってみる