テーマ、知りたいこと
記事に載せましたコードのレビューをお願いしたいです。
また改善策などありましたら、コメントのほどお願いします。
ソースコード説明
ソースコードの内容としまして、
入力文字列を上限10文字で受け取るというものです。
入力はgetcharで行います。
10文字以下の入力の場合は、そのままプリントされます。
10文字以上の入力の場合は、10番目以降の文字を読み捨てられる。
バッファに残っていないことを確認するために、scanfを置いておき、
・何もせずに入力を受け取っていたら、バッファに文字が残っており、
・入力待ち状態になったら、バッファに文字が残っていないことがわかるようになっています。
ソースコード
C
1#include <stdio.h>2 3int main(){4 char name[10];5 int c;6 int i;7 int flag = 0;8 9 for(i = 0; i < 10; i++){10 c = getchar();11 12 if(c == '\n'){13 name[i] = '\0';14 break;15 }16 17 name[i] = c;18 19 if(i == 9 && c != '\n'){20 name[i + 1] = '\0';21 flag = 1;22 break;23 }24 }25 26 if(flag == 1){27 name[i] == '\0';28 while(getchar() != '\n');29 }30 31 int num;32 scanf("%d", &num);33 34 printf("%s", name);35 36 return 0;37}
0 コメント