gpt4 book ai didi

c - 如何读取不同长度的子串

转载 作者:太空宇宙 更新时间:2023-11-04 02:38:59 24 4
gpt4 key购买 nike

我有一个文件,其中包含长度不同的三列(来自传感器的读数),例如。

-728 -233 3947
4258 -623 333
-500 93 -4141
-491 107 -4136
-495 94 -4161
-886 101 -4148
-2555 1864 -4888

我使用 fgets 读取该行。但我想将第一列读作 x,将第二列读作 y,将第三列读作 z。即使我使用空格作为检测新子串的标记,也不能解决我的问题,因为每行的列数字长度不同。关于如何做的任何想法?我粘贴了一段代码,它从文件中读取行并尝试将三个子字符串打印为三个数组元素。

char *arr_x, *arr_y, *arr_z;

fp = fopen(filename, mode);
while(! feof(fp))
{
if( fgets (str, 60, fp)!=NULL )
{
strncpy(arr_x, str, ' ');
strncpy(arr_y, str, ' ');
puts(str);

}
}

最佳答案

我相信您走在正确的道路上,只需要添加更多的调整。请查看以下算法。

  1. 定义三个数组,分别对应xyz
  2. 阅读整行。
  3. 使用 strtok() 开始标记行以空格作为分隔符,如您所想
  4. 将第一个标记存储在 x 数组的第 i 个索引中,将第二个标记存储在 y 数组中,将第三个标记存储在 z 中 数组。
  5. 继续下一行,增加i并继续存储它们直到fgets()返回NULL。

此外,FWIW,

关于c - 如何读取不同长度的子串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33968980/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com