繁体   English   中英

如何格式化C中的输入

[英]How to format input in C

我需要帮助弄清楚如何以特定格式输入 C {1,2,3,4} // 这是正确的输入 - {} 中的数字用逗号分隔。


 znamky = (int*) malloc (n * sizeof(int)); // I allocate memory here
    if (znamky == NULL)                   
        return EXIT_FAILURE;
    printf("Pocty bodu:\n"); 
    scanf("%c",&overeni[0]); // here I check if the first character is {; if not I exit program
    if (overeni[0]!=zavorka[0]) 
    {
        printf("Nespravny vstup.\n");
        return EXIT_FAILURE;
    }
    while (scanf("%d",&znamky[count])!=EOF) //here I continue loading numbers, and char fight
    {                                       //if the character after number is "," i load another 
       if (scanf("%c",&znaminko[0])==1)     //number, if it is "}"I exit the while cycle   
        {                                   // else I exit the program
            if (znaminko[0]==carka[0])  // if equals ","
                {
                    printf("sdf\n");
                    count++;
                    if (count==n) // if I run out of memory I allocate more
                    {
                        n = n*2;
                        znamky = (int*) realloc (znamky, n * sizeof(int) + 4);
                    }
                    continue;
                }
            if (znaminko[0]==zavorka2[0]) // if equals "}"
                count++;
                printf("utikam\n");
                break;
        }
        else 
        {
            printf("Nespravny vstup\n");
            return EXIT_FAILURE;
        }
    }

    printf("%d ",count); //here I just print length of my array
    printArray(znamky,count); 

    free(znamky);
    return 0;

我的问题是:当我运行代码并给它正确的输入时,它工作得很好,但是如果我输入 {2 并按 enter 它认为,输入等于“}”并退出循环。 为什么会这样想? 上面当我将 char 与“{”进行比较时,它似乎工作正常......也欢迎任何有关如何改进代码的提示,我对编程仍然是新手,所以我看不到所有明显的错误。 非常感谢。

我的问题是:当我运行代码并给它正确的输入时,它工作得很好,但是如果我输入 {2 并按 enter 它认为,输入等于“}”并退出循环。 为什么会这样想? 在上面,当我将 char 与“{”进行比较时,它似乎工作正常......

也欢迎任何关于如何改进代码的提示,我还是编程新手,所以我看不到所有明显的错误。

但是如果我例如输入 {2 并按回车键它认为,输入等于“}”

问题在这里:

        if (znaminko[0]==zavorka2[0]) // if equals "}"
            count++;
            printf("utikam\n");
            break;

它应该是:

        if (znaminko[0]==zavorka2[0]) // if equals "}"
        {
            count++;
            printf("utikam\n");
            break;
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM