首页 > 解决方案 > 输出到脚本时终端使用什么编号系统

问题描述

我目前正在学习 C 编程,并编写了一个类似于我之前用 Python 编写的脚本。我的目标是学习如何将输入传递给应用程序并让它处理我传递给它的数据。

我现在遇到的问题是我的应用程序给我的反馈。我编写了一个简单的应用程序来读取键盘输入,并根据我给出的输入给出 3 个响应中的 1 个。代码如下:

/*Input test.*/

#include<stdio.h>
#include<stdlib.h>


char input;
const int option_a = 1;
const int option_b = 2;


int main()
{

    printf("Lets get started! a for on or b for off?\n");
    while(1)
    {
        input = getchar();
        if(input == option_a)
        {
            printf("We're on.!\n");
        }
        else if(input == option_b)
        {
            printf("Off we go.\n");
        }
        else
        {
            printf("Excuse me, but I didn't get that.\n");
        }
    }
    return 0;
}

简单地说 option_a 是我按下键盘上的 1 键,而 option_b 是键 2。当我按下这些键或任何键时,应用程序将始终转到决策树的“else”部分。话虽如此,我很清楚,我会说缺乏更好的术语/表达,我的应用程序没有将我的输入视为十进制数 1 或 2。

从终端,我发送到我的应用程序的数据结构是什么,或者简单地说,我的 1 或 2 “看起来”在我的应用程序中是什么样的?

标签: inputdata-structuresterminal

解决方案


当你接受输入时,getchar()你就会得到一个char价值。但是您正在将其与整数进行比较。您可以将输入与相应的字符进行比较,而不是与整数进行比较。例如,使用

const char option_a = '1';
const char option_b = '2';

推荐阅读