我有一个严酷的时间来实现这一点。我读了一串整数,从那个链中提取它们并将它们放入一个数组中。我想尝试一些新的东西,因为以前用getChar
来描述字符的字符,但是现在我找到了处理这个工作的sscanf
。使用sscanf区分新行和错误
From Doc(sscanf): 成功时,函数返回成功填充的参数列表中的项目数。在匹配失败的情况下,该计数可以匹配预期的项目数量或更少(甚至为零)。 在任何数据可以被成功解释之前输入失败的情况下,返回EOF。
行:char line[] = "100 185 20 11 1000"; // number of int is unknown, it can differ
问题:如何使线的末端和任何错误
EG之间diffrence:char line[] = "100 185 abc(not int) 11 1000";
代码:
int main(int argc, char** argv) {
char line[] = "100 185 20 11 1000";
int arrOfInt[10];
char *data = line;
int track, number, index = 0;
while ((sscanf(data, " %d%n", &number, &track)) == 1)
{
arrOfInt[index] = number;
data += track;
index++;
}
return 0;
}
'而.... == 1' ... emm..why? –
1表示成功 –
是吗?你不应该写_“成功时,函数返回成功填充的参数列表中的项目数。”_? –