我是一个初学者,因此,如果很明显,请放轻松。
我正在使用C。

我正在使用cbreak();从curses.h可以从Linux终端实时获取输入。
我正在使用getch();一次最多捕获一个输入,然后使用这些输入寻址2D数组。

我想做的是在收到两位数地址后立即在数组位置打印数据。
照原样,它将采用两位的第一组,然后在接收到第二个位置的地址的第一个数字时打印第一个数组位置。

这是我所拥有的:

   int northsouth[2]; //array to hold input
   int nschoice; //counter for for below

   int loopOn = 1;
   int northSave;   //(confused me) places to save value of northSouth[] in attempt
   int southSave;   //to print only after receiving two digits.

   while(loopOn != 0)
   {
         for(nschoice = 0; nschoice < 2; ++nschoice)
         {
            northsouth[nschoice] = getch();
            if(nschoice == 1 && northsouth[0] != northSave && northsouth[1] != southSave)
            {


               strcat(input, l[northsouth[0] -= 48][northsouth[1] -= 48]);
               printf("\033[2J\033[1;1H");
               printf("%s", input);
               northSave = northsouth[0];
               southSave = northsouth[1];
             }

         }

   }

最佳答案

如果我理解您的意思,请在阅读两位数后再打印。 (不是每一个)。

如果是这样,您应该从if循环中取出for及其整个块,因此for循环将读取2位数字,并且将打印if

09-10 00:28