決められた範囲内の座標を取得して表示するプログラムを作成したいのです。
scanfを使う手も考えましたが、オーバーラン対策も入れたいので、できればfgetsを使いたいです。
理想としては、A1を入力すると、入力された値は、A1です。と表示させたいです。
現状は、((xy[0] && xy[1]) = 'A'))の部分でエラーが出ています。Aは半角英字で2バイト用いるのでxy[0]とxy[1]の2つでAが形成されていると考えていますが、この考え方で合っているのでしょうか?
C
1#include <stdio.h> 2#include "type.h" 3 4#define MAXDATA 10 5 6int main(void) { 7 char flag = 0; 8 char xy[MAXDATA]; 9 10 printf("座標(A,1~4)を入力してください(例:A1, A2)"); 11 12 while (flag == 0) { 13 fgets(xy, MAXDATA, stdin); 14 if (xy[3] == '\n') { 15 if ((((xy[2] > '0') && (xy[2] < '5')) || ((xy[0] && xy[1]) = 'A'))) { 16 flag = 1; 17 } else { 18 printf("範囲外の入力です。もう一度入力してください。\n"); 19 } 20 } else { 21 if (strchr(xy, '\n') == NULL) { 22 while(fgetc(stdin) != '\n'); 23 } 24 printf("値が大きすぎます。もう一度入力してください。\n"); 25 } 26 } 27 28 printf("入力された値は、%sです。\n", xy); 29 30 return 0; 31} 32 33
回答1件
あなたの回答
tips
プレビュー