getsは入力された文字列を指定された配列などに格納する。
Man page of GETS
C言語関数辞典 - gets
スペースで区切られることがないので、scanfより最後まで文字列を取得したい場合に使う。
ただし、セキュリティ上の問題から、この関数は非推奨になっている。
また、C11の規格では、削除されたらしい。
コンパイルすると、
$ vi gets.c $ gcc gets.c -o gets gets.c: 関数 ‘main’ 内: gets.c:11:3: 警告: implicit declaration of function ‘gets’; did you mean ‘fgets’? [-Wimplicit-function-declaration] gets(text); /* 入力文字列をgetsでtextに格納. */ ^~~~ fgets /usr/bin/ld: /tmp/ccK5CTSx.o: in function `main': gets.c:(.text+0x32): 警告: the `gets' function is dangerous and should not be used. $
このようにfgetsを使えと警告。
実行すると、
$ ./gets ABCDE text = ABCDE $
入力した文字列が格納されている。
Sample/c/gets/gets/src/gets at master · bg1bgst333/Sample · GitHub