我试着读入一个方程式,然后把每个部分分开,但是用户可以输入任意大小的方程式(例如。3+7、2+9+8甚至2)。我有这个,但它似乎不起作用。

printf("Please enter an equation\n");

scanf("%f", &num);
//printf("%f", num);


while ( num != '\n'){
scanf("%f", &num);
scanf("%c", &op);
//printf("%c  %f \n", op, num);
}

当我输出得到的和输入的不一样。

最佳答案

您可能希望阅读How to read a line from the console in C?了解全部详细信息,但基本上您只需这样做:

char * getline(void) {
    char * line = malloc(100), * linep = line;
    size_t lenmax = 100, len = lenmax;
    int c;

    if(line == NULL)
        return NULL;

    for(;;) {
        c = fgetc(stdin);
        if(c == EOF)
            break;

        if(--len == 0) {
            len = lenmax;
            char * linen = realloc(linep, lenmax *= 2);

            if(linen == NULL) {
                free(linep);
                return NULL;
            }
            line = linen + (line - linep);
            linep = linen;
        }

        if((*line++ = c) == '\n')
            break;
    }
    *line = '\0';
    return linep;
}

关于c - 使用Scanf读取随机长度方程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22149775/

10-10 16:18