본문 바로가기

프로그래밍177

[C/C++] 소수점 n자리 출력, 정수 및 소수점 0 채우기 지식인 둘러보다가 다음과 같은 질문을 발견했다. 생각해보니 저렇게 출력해 본 적이 없어서 나도 의문이었다. 저렇게 출력을 하는 방법이 있나 ? 근데 있었다! #include int main() { printf("%05.2f\n", 5.12345); return 0; } >> 05.12 소수점을 포함한 5자리 수 출력을 하는데, 그 중에 소수점 자리는 2자리 출력, 나머지는 0으로 채운다는 의미 같다. 그렇다면, 만약 이렇게 코딩을 하면 결과는 어떻게 나올까? #include int main() { printf("%010.5f\n", 5.123); return 0; } 10자리 중 소수점 자리는 5자리 출력이니, 0005.12300 이렇게 나올 것이다!! 오늘도 유용한 지식 알아간다. 2022. 12. 21.
유용한 온라인 컴파일러 사이트 가끔 지식인 답변을 해주다가 c/c++ 컴파일이 필요할 때 내 pc에서는 환경 설정이 되어있지 않아 곤란할 때가 있다. 그럴때 내가 유용하는 사이트 https://replit.com/languages/c C Online Compiler & Interpreter Write and run C code using our C online compiler & interpreter. You can build, share, and host applications right from your browser! replit.com 은근 괜찮다 (최고) 2022. 12. 21.
[C언어] byte를 0과 1로 출력 / binary 출력 (byte to binary) byte 보다는 8bit로 출력을 하고 싶을 때가 있다. #define BYTE_TO_BINARY_PATTERN "%c%c%c%c%c%c%c%c\n" #define BYTE_TO_BINARY(byte) \ (byte & 0x80 ? '1' : '0'), \ (byte & 0x40 ? '1' : '0'), \ (byte & 0x20 ? '1' : '0'), \ (byte & 0x10 ? '1' : '0'), \ (byte & 0x08 ? '1' : '0'), \ (byte & 0x04 ? '1' : '0'), \ (byte & 0x02 ? '1' : '0'), \ (byte & 0x01 ? '1' : '0') 위와 같이 define으로 정의해두고 쓰면 유용하다.! 2022. 12. 20.
[Flutter] Google Map API Release 시 뜨지 않는 이슈 이런... 오전부터 개삽질했다. https://cording-cossk3.tistory.com/198 [Flutter] Google Map API 사용하기 하나하나 자세하게 알려주는 블로그가 없어 내가 직접 포스팅한다. 우선 Google Cloud Platform으로 이동하자! Google Cloud Platform 이동 Google Cloud Platform 하나의 계정으로 모든 Google 서비스를 Google Cloud Pla cording-cossk3.tistory.com 위 포스팅을 따라서 google map api를 사용하게 되면 디버깅 모드에서는 잘 빌드되고, 맵도 잘 나올 것이다. 근데 flutter run --release 위처럼 release로 실행하게되면 회색 화면이 뜨면서 맵이 로드.. 2022. 12. 19.
[C/RL-ARM KEIL] thread 대신 os_tsk_create 사용하기 커널에 올리는 코드라 그런지 thread를 사용할 수 없다. 대신, thread처럼 사용할 수 있는 os_tsk_create를 사용하자! int main(void) { ... os_sys_init(os_init); ... } os_sys_init 함수는 RTX(Real-Time eXecutive) 커널을 초기화하고 시작할 수 있는 함수이다. 그 안에 인자로 커널이 초기화된 후 시작할 태스크 함수를 넣어주자. __task void os_init(void) { // 1 os_tsk_create(Test1, 3); // 2 os_tsk_create_ex(Test2, 1, (void *)0); os_tsk_delete_self(); } os_tsk_create(테스크 함수, 우선순위); os_tsk_create.. 2022. 12. 1.
[C/RL-ARM KEIL] 포인터 사용하기 (malloc 대체) keil에서 malloc을 사용하면 계속 hard fault error가 난다.... 삽푸다가 결국 알아낸 방법. rtx 함수를 이용하는 것이다! // 1 #include // 2 typedef struct { PILOT_STATE m_state; PILOT_STATE (*GetState)(void); void (*SetState)(PILOT_STATE pstate); } Pilot; // 3 _declare_box(g_poolPilot, sizeof(Pilot), 1); 1 : RTL.h 함수 선언 2 : 사용하려는 포인터 구조체 선언 3 : _declare_box(pool 변수 이름, 포인터 구조체 사이즈, 포인터 개수) 위와 같이 전역으로 선언을 해줬으면, 초기화를 해주자. // 1 Pilot* g.. 2022. 12. 1.
[C/Keil RTX] GPIO INPUT 이벤트 처리 (IRQHandler) 나는 PA.6을 EINT0으로 설정하려고 한다. // 1 SYS->GPA_MFPL = SYS_GPA_MFPL_PA6MFP_INT0; // 2 SYS->GPA_MFPL = (SYS->GPA_MFPL & (~SYS_GPA_MFPL_PA6MFP_Msk) ) | SYS_GPA_MFPL_PA6MFP_INT0 ; 1 또는 2 방법으로 설정해주면 된다. 그 다음 아래와 같이 설정해주기. // a GPIO_SetMode(PA, BIT6, GPIO_MODE_INPUT); // b GPIO_EnableInt(PA, 6, GPIO_INT_BOTH_EDGE); // c NVIC_EnableIRQ(EINT0_IRQn); // d GPIO_ENABLE_DEBOUNCE(PA, BIT6); a : PA.6 핀을 input 모드로 설.. 2022. 12. 1.
[Flutter] CERTIFICATE_VERIFY_FAILED: unable to get local issuer certificate I/flutter: HandshakeException: Handshake error in client (OS Error: CERTIFICATE_VERIFY_FAILED: unable to get local issuer certificate(handshake.cc:393)) class MyHttpOverrides extends HttpOverrides { @override HttpClient createHttpClient(SecurityContext? context) { //for https able to get local issuer certificate return super.createHttpClient(context) ..badCertificateCallback = (X509Certificate c.. 2022. 10. 13.
[Flutter] nats server 연동 NATs Server와 연동할 일이 생겼다.. 지식이 없어 이것저것 헤매다가 결국 알아냈더랬지 pubspec.yaml dependencies: flutter: sdk: flutter #NATS dart_nats: 0.3.5 내가 사용한 라이브러리는 dart_nats connect nats.Client natsClient; void connect() async { natsClient = nats.Client(); await natsClient.tcpConnect('ip'); print('${_TAG}connect : ${natsClient.status.name}'); } 처음에 그냥 natsClient.connect 함수를 썼는데 로그는 connected라 찍히는데 정작 서버에서는 연결이 안됐다고 해서 찾.. 2022. 7. 15.
[Flutter] ListView 와 ListView.builder 차이 앱 개발을 하다가 bottomsheet를 띄우는데 렉 걸린듯이 버벅이면서 로드가 됐다.. ListView를 사용하고 있기도 하고, 그 안에서 여러 위젯들을 많이 띄우기도 하고.. 연산도 많이 해서 그런가 싶어 이것저것 찾아보다가 결국 알아낸게 ListView.builder 였다. There are four options for constructing a ListView: 1. The default constructor takes an explicit List of children. This constructor is appropriate for list views with a small number of children because constructing the List requires doing wo.. 2022. 7. 12.