我可以在C ++中做这样的事情吗?
//int i,Data[];
//malloc Data[];
$sscanf(line,"Data[%d]=0x%d",i,Data[i]);
Data []是一个int数组,我试图根据我一次性读入的'i'的值来读取随机索引。
答案 0 :(得分:4)
你可以这样做:
int index, value;
sscanf(line, "Data[%d]=%d", &index, &value);
// Check if index is within bounds of the array here
Data[index] = value;
你需要'&'因为sscanf将指针作为参数。
答案 1 :(得分:-1)
为什么不亲自尝试一下?不要忘记你需要传递指向你的值的指针,即
sscanf(line, "Data[%d]=0x%d", &i, &Data[i]);
无论它是否有效(并且它用于记录,它没有),它使得更可读/更安全的代码通过单独的调用进行赋值(如果i
大于数组的结尾?):
const int maxData = 10;
int Data[maxData];
int i;
int tmp;
sscanf(line, "Data[%d]=0x%d", &i, &tmp);
if( i >= maxData )
{
printf("Error! index was too big");
}
else
{
Data[i] = tmp;
}
[编辑] @向下选民:我知道这不起作用我只是想鼓励OP为他/她自己尝试