getsが危険だからfgetsを使えってコンパイルが言うのでそうしてたけど、
scanfだとエラーが出なかった。
#include <stdio.h> int main(void){ printf("input something\n"); char buffer[10]; scanf("%s",buffer); printf("you input %s\n",buffer); return 0; }
fscanfもfgetsと同じように使えるのかなと思ったら、使えた。
#include <stdio.h> int main(void){ printf("input something\n"); char buffer[10]; fscanf(stdin,"%s",buffer); printf("you input %s\n",buffer); return 0; }
fgetsは文字列で読み出すので、型を気にする必要がない分安全だということだろう。
改行を削除しないといけないのがめんどくさいけど。
#include <stdio.h> int main(void){ printf("input something\n"); char buffer[10]; fgets(buffer,10,stdin); printf("you input %s\n",buffer); return 0; }