외부 장치에서 버퍼를 읽는 다음 함수를 작성했습니다. 다른 함수로 직렬 포트를 열었습니다.외부 장치의 데이터를 배열에 저장하십시오.
machine 1:vol=3.44V, str=10.2
machine 2:vol=3.23V, str=10.00
10 초 후에
machine 1:vol=3.24V, str=11.2
machine 1:vol=3.27V, str=11.4
등 :
이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 초마다 서로 다른이 같은 결과를 반환 : 나는 비 정지 결과를 원하기 때문에 나는 루프이 있습니다
이제 내 질문은 배열에 모든 vol 값과 1 초에 저장할 수있는 방법입니다. 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