You are on page 1of 1

1 #include <stdio.

h>
2 #include <string.h> //strlen()関数を使うため
3
4 int main(int argc, char *argv[]) {
5 const int MAX_BUFFER = 10;
6 char buffer[MAX_BUFFER];
7 int input_len = 0; //文字配列の文字数(終端記号を除く)を格納する変数
8
9 while (1) {
10 printf("Input > ");
11 fgets(buffer, MAX_BUFFER, stdin);
12 //標準入力から文字列を取得
13
14 input_len = strlen(buffer);
15 //input_len に入力された文字列の長さを格納(最大 9)
16
17 if(buffer[input_len-1] != '\n'){
18 /*末尾の文字が改行記号では無い場合
19 つまり、入力ストリームに文字が残っている場合
20 */
21 while(getchar() != '\n');
22 /*改行記号を取得したらループ脱出
23 つまり、入力ストリームの中を空にする
24 */
25 }
26
27 if(buffer[input_len-1] == '\n'){
28 buffer[input_len-1] = '\0';
29 //改行記号が含まれている場合、それを終端記号に置き換える
30 }
31
32 if(buffer[0] == '\0'){
33 printf("Please input some kyes\n");
34 /*エンターキーのみしか押されていない場合にメッセージを表示
35 なお、上の処理によって\n は\0 となっている
36 */
37 }else{
38 printf("string = %s\n", buffer);
39 }
40
41 if(buffer[0] == 'q' && input_len <=2){
42 break;
43 //q 一文字だけ入力しエンターを押した場合のみ、プログラム終了
44 }
45
46 }
47 return 0;
48 }
49

You might also like