关于多个的数据的输入

Hyacinthus_M 发布于 2013/05/13 16:34
阅读 161
收藏 0
Vim

@中山野鬼 你好,想跟你请教个问题:我有修改wireless-tools代码的过程中出现了问题,不能有有效的输入数据:

部分代码如下:

    int     input_choice;  
    char    input_essid[IW_ESSID_MAX_SIZE + 1];      



    fprintf(stdout, "\n\n");
    fprintf(stdout, " Scanning ESSID completed!\n");
    fprintf(stdout, " What do you want to do next?\n");


    fprintf(stdout, "%s\n%s\n%s\n", "   1. Scanning again",
                                    "   2. Input ESSID manual",
                                    "   3. Exit");


    fprintf(stdout, "\nPlease input you choice: \n");
    
    fscanf(stdin, "%d\n", &input_choice);
    switch(input_choice)
    {
        case '1':
            /* Scanning again */
            fprintf(stdout, "Restart iwlist scanning\n");
            break;
        case '2':
            /* Input ESSID manual */
            fprintf(stdout, "%s\n", "You choose 2");
            fflush(stdout);
            get_input_essid(input_essid);
            fprintf(stdout, "%s\n", input_essid); 
            break;
        case '3':
            fprintf(stdout, "Program terminate.\n");
            break;
        default:
            fprintf(stdout, "Invalid input\n");
    }


void get_input_essid(char *essid)
{
    fprintf(stdout, "Please input essid : ");
    fgets(essid, sizeof(essid), stdin);
}

就是想先输入选择,然后录入ESSID字符串。 请问我的问题出在哪。

加载中
0
中山野鬼
中山野鬼

case '1': 

这个地方有错。 其他地方不知道。除非你的 input_choice 里面存放的是0x31,也就是49的值。哈。

Hyacinthus_M
Hyacinthus_M
可是我运行程序后,比如输入数据,程序会进入对应选项中的,好奇怪。现在我已经使用多个if-else来解决问题了。谢谢吧。中山哥。
返回顶部
顶部