-1

入力ごとに 1 つの値である 0 または 1 を返す関数が必要です。
入力は、1 行に 1 つずつ、キーボードから行う必要があります。
予期される入力は、空白、1 および 0 です
。1 - 入力: 結果は 1
0 - 入力: 結果は 0
スペース - 入力:
結果
は 0

getchar() と一連の if ステートメントを使用していますが、動作させることができないようです。 getchar()は、改行文字ではなく
、入力のみを提供する、または入力を欠くように操作するのが難しいようです。

あなたが持っているかもしれない洞察に感謝します!

4

1 に答える 1

2

具体的にお願いします。あなたはこのようにそれをすることができます

#include <stdio.h>
// only if you dont want to wait for enter each get
#include <termios.h>
#include <unistd.h>

int main ()
{
   char c = 0;

   // only if you dont want to wait for enter each get
   struct termios newtty;
   tcgetattr (0, &newtty);
   newtty.c_lflag &= (~ICANON);
   tcsetattr (0, TCSANOW, &newtty);



   puts ("start\n");
   do {
      if(c == 0)
         c=getchar();
      switch(c)
      {
         case '1':
            c=getchar();
            if(c == '\n')
               putchar ('1');
            else
               continue;
            c = 0;
            break;
         case '0':
         case '\t':
            c=getchar();
            if(c == '\n')
               putchar ('0');
            else
               continue;
            c = 0;
            break;
         case '\n':
            putchar ('0');
            c = 0;
            break;
         default:
            c = 0;
            continue;
     }
  } while (1);
  return 0;
}
于 2012-12-03T20:59:40.763 に答える