簡體   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