我编写了以下从外部设备读取缓冲区的函数(我用另一个函数打开了串口)。我有这样的循环,因为我想有不停的结果:将数据从外部设备保存到阵列
int get_data(int fd)
{
int n;
for (;;)
{
char buff[1000];
n=read(fd,buff,1000);
printf("%s\n\n", buff);
sleep(1);
memset(buff, 0, 1000);
}
}
返回缓冲区每10秒不同的结果是这样的:秒
machine 1:vol=3.24V, str=11.2
machine 1:vol=3.27V, str=11.4
等
machine 1:vol=3.44V, str=10.2
machine 2:vol=3.23V, str=10.00
10后。
我现在的问题是,我怎样才能保存一个数组中的所有vol值和一个secon d数组的str值?下一步是将这些数据从数组中保存到mysql数据库中。我想用strncpy来复制一个新数组中的字符串,但我认为这不是一个好主意。例如:
char vol[10];
strncpy(vol, buff + 15, 4);
printf("%s\n", vol);
你有什么建议我?
您可以使用'strtok'分隔输出。 http://en.cppreference.com/w/c/string/byte/strtok 空间可以是你的分隔符,不知道你想保存到阵列的哪些部分。 – Nobilis
感谢您的回答...我想在第一个数组中保存数字3.44,3.27等,并在第二个10.2,10.00等 – dali1985