我试着读入一个方程式,然后把每个部分分开,但是用户可以输入任意大小的方程式(例如。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/