作者:651404449_724afc | 来源:互联网 | 2023-05-24 12:13
我正在尝试使用C将包含多行空格分隔的整数的文件解析为动态int数组的动态数组。每行将是数组数组中的一个数组。行数以及每行中的元素都是非恒定的。
到目前为止,我所做的是使用fgets将每行抓取为字符串。
但是,我无法弄清楚如何解析由空格分隔的整数的字符串。
我以为我可以使用sscanf(因为fscanf可用于解析整个由空格分隔的整数的文件)。但是,看来sscanf具有不同的功能。sscanf仅解析字符串中的第一个数字。我的猜测是,因为该行是字符串而不是流。
我一直在寻找一种从字符串中生成流的方法,但是看起来好像不是C语言中可用的(我无法使用非标准库)。
char* line;
char lineBuffer[BUFFER_SIZE];
FILE *filePtr;
int value;
...
while((line = fgets(lineBuffer, BUFFER_SIZE, filePtr)) != NULL) {
printf("%s\n", lineBuffer);
while(sscanf(lineBuffer, "%d ", &value) > 0) {
printf("%d\n", value);
}
}
有什么我可以用来解析字符串的东西吗?如果没有,那么整个系统是否还有其他选择?我宁愿不使用REGEX。