Arduino에서이 함수를 사용하여 40 자 (LCD의 너비)까지 문자열을 채 웁니다.이 문자열을 쓰는 과정에서 마지막으로 남은 문자가 지워집니다. 내가 그것을 사용할 때sprintf를 사용하는 데 문제가 있습니까?
문제는, 그것은 보낼 수있는에서 내 RF24 모듈을 중지 ... (다른 모든 여전히 실행하고 접수에) 내가 아는 이상한 ...
void printLine(char* line){
sprintf(line, "%-40s", line);
lcd.writeString(line);
}
은 지적했다 라인에서 줄을 써서는 안된다. 나는 이것을 고쳤지만 같은 문제가있다. (코드의 상단에서) '라인'
char line[lcdCols];
[sprintf (버퍼, "% s \ [... \]", 버퍼, \ [... \])가 안전합니까?] (http://stackoverflow.com/questions/1283354/is-sprintfbuffer- s-buffer-safe) – alk
새 코드를 사용하면 정보가 충분하지 않을 수 있습니다. 'blank'는 어디에 정의되어 있습니까? 'lcd.writeString()'이란 무엇입니까? –
빈칸에 대해 유감스럽게 생각합니다. 2 명의 사용자를 대상으로 한 시험에서 나왔습니다. 초기 답변 후 원래 코드로 수정했습니다. lcd.writeString의 출처는 다음과 같습니다. https://code.google.com/p/arduino-t6963c/source/browse/T6963_Lib/T6963.h –