gpt4 book ai didi

c - 如何将一行中不同数量的数字分配给一个可以包含所有数字的数组?

转载 作者:行者123 更新时间:2023-11-30 17:51:22 25 4
gpt4 key购买 nike

我有两个文件,2dim.dat 和 3dim.dat,它们的第三行分别包含以下内容:

2 12

1 0 0

他们的第三行是唯一与我们兴趣相关的行。编写了一个函数来计算该行中有多少个数字,然后程序构造一个具有这些维度的无符号整数数组。我知道我可以通过执行以下操作将 2dim.dat 中的值 2 和 12 分配到 C 程序中该数组的维度中

if(fscanf("%hu %hu", &number[0], &number[1]) == 2){}

对 3dim.dat 的处理方式类似。

如果我收到的文件在一行中包含更多值(例如 4、20 甚至 270)怎么办?我不知道如何告诉 fscanf 在第一个参数中重复使用空格分隔 %hu 270 次,然后添加数组的所有维度。

最佳答案

示例代码

#include <stdio.h>

int main(void){
//input line_buff like fgets(line_buff, sizeof(line_buff), fp);
char line_buff1[64] = "4 20 270";
char line_buff2[64] = "4 20";
unsigned short number[3];
int i, count;
//Succeed in reading three, be count = 3
count = sscanf(line_buff1, "%hu %hu %hu", &number[0], &number[1], &number[2]);
for(i=0;i<count;++i)
printf("%hu\n", number[i]);

//Succeed in reading two, be count = 2, fail number[2]
count = sscanf(line_buff2, "%hu %hu %hu", &number[0], &number[1], &number[2]);
for(i=0;i<count;++i)
printf("%hu\n", number[i]);
return 0;
}

关于c - 如何将一行中不同数量的数字分配给一个可以包含所有数字的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16761895/

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