#この記事で話したいこと
標準入力関数の中でも、scanfとfgetsにフォーカスして、scanfの注意点, fgetsのメリットについて。
#目次
1.scanfの注意点
2.fetsのメリット
3.まとめ
Target
自分
Purpose
備忘録
#1. scanf の注意点
- scanf書式
#include<stdio.h>
scanf("%d",&n);
変数の前に&をつけて、アドレスを指定します。
そして、変数nを何にするかによって、変換指定文字を変更することができます。
- scanfの注意点
空白文字は文字入力の終端と判断されます。
その様子のコードを下記に。
int main()
{
scanf("%d",&n);
printf("%d",n);
}
3 2
2
#2. fgetsのメリット
-fgetsの書式
#include <stdio.h>
char *fgets(char *s, int n, FILE *fp);
第一引数は、文字配列のポインタ
第二引数は、一行の文字数。ここには\nも入るので、最大文字数ー1の文字が入ります。
第三引数は、ファイルからだけでなく標準入力からも文字列を受け取れます。
標準入力の場合は「stdin」としてください。
-メリット
一行の文字を入力することができるので、 scanfで問題だったスペースも一文字として含めることができます。
#include<stdio.h>
#define NUM 9
int main(void)
{
char str[NUM];
fgets(str,NUM,stdin);
printf("%s\n",str);
return 0;
}
2 3459 7 8
2 3459 7 8
#まとめ
上記にあげた注意点をscanfを使ってフォローする方法はあるようです。
ただ私はまだプログラムに慣れていないので、簡単な方法で標準入力方法の道を見つけた、という感じです。