我編寫了以下從外部設備讀取緩衝區的函數(我用另一個函數打開了串口)。我有這樣的循環,因爲我想有不停的結果:將數據從外部設備保存到陣列
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