int main(){
int i,j;
char *data = "1\n2\n";
sscanf(data, "%d", &i);
sscanf(data, "%d", &j);
printf("i=%d, j=%d\n", i, j);
return 0;
}
阅读本sscanf的开始如果你<a href="http://codepad.org/6mGWfWO0" rel="nofollow">run the code</a>你会看到从begining
i=1, j=1
为什么j=1
这里?不应该是2
?我错过了非常基本的东西吗?
如果我使用sscanf(data, "%d\n%d", &i, &j);
它显示正确的输出。但是现在下一个sscanf调用将从头再次开始读取? 这是为什么?如何正确读取它?
您指定'data'为出发点,不是吗?你还期望什么? –
是的,你错过了一些非常基本的东西,你从同一个地址开始,读取一个整数*两次*并得到两次相同的值。那里没有惊喜。 –