【发布时间】:2014-03-04 03:52:02
【问题描述】:
我正在尝试使用 sscanf 将令牌转换为浮点数。代码编译并运行,但每当我输入一个值时,我只会得到 0.0000。由于某种原因,它没有正确转换。
代码如下:
while(1)
{
printf("repl> ");
char *storage [30];
char *tok;
char g;
double my_double;
char buffer[20];
int pos = 0, i;
fgets(buffer,sizeof(buffer),stdin);
tok = strtok(buffer," ");
while (tok != NULL)
{
if (strcmp(tok, "add") == 0) printf("YES!!");
else if (strcmp(tok, "add\n") == 0) printf("YELZZ!!!");
if (strcmp(tok, "quit") == 0) exit(1);
else if (strcmp(tok, "quit\n") == 0) exit(1);
if (sscanf(tok, "%f", my_double) > 0)
{
Push(NULL, my_double, &head);
}
else
Push(strdup(tok), 0, &head);
tok = strtok(NULL," ");
}
Display(&head);
【问题讨论】: