我有一个GPS模块,我一次只能从i2c总线读取一个字节,所以我使用类似于这样的循环(这是一个示例代码):
#include <stdio.h>
#include <string.h>
int main (void)
{
int i;
char test[26];
char sendbuf[40];
for (i=0;i<26;i++)
{
test[i]=i;
}
}
我想把这些数据一起发送,而不是字节对字节。有没有办法把它们放在一个缓冲区中,然后一次发送它们,比如:
sprintf(sendbuf, "%s", test);
而不使用for(;;)?
您可以使用memcpy()
memcpy(sendbuf, test, sizeof(test));
我相信我找到了…
#include <stdio.h>
#include <string.h>
void main()
{
int i;
char buffer[20];
char cmd[20];
for(i = 0; i < 10; i++) {
sprintf(buffer+i, "%d", i);
}
sprintf(cmd,"%s",buffer);
printf("%s", cmd);
printf("n");
}