반응형

C 103

C/C++의 엔드리스 루프

C/C++의 엔드리스 루프 닫았습니다. 이 질문은의견 기반의현재 답변을 받고 있지 않습니다. 이 질문을 개선하시겠습니까?이 게시물을 편집하여 사실과 인용문으로 답변할 수 있도록 질문을 업데이트하십시오. 8년 전에 문을 닫았어요 이 질문을 개선하다 엔드리스 루프를 실행할 수 있는 몇 가지 방법이 있습니다.다음으로 몇 가지를 선택하겠습니다. for(;;) {} while(1) {}/while(true) {} do {} while(1)/do {} while(true) 어떤 양식을 선택해야 합니까?그리고 현대의 컴파일러는 중간과 마지막 문장의 차이를 만드는가, 아니면 끝없는 루프라는 것을 깨닫고 체크 부분을 완전히 건너뛰는가? 편집: 말씀드린 대로 잊어버렸습니다.goto명령어로서 전혀 마음에 들지 않기 때문에,..

programing 2022.08.30

C의 파일 끝에 추가

C의 파일 끝에 추가 파일 myfile의 내용을 추가하려고 합니다.txt를 두 번째 파일 myfile2의 끝에 추가합니다.txt (c)내용을 복사할 수 있지만 추가할 방법을 찾을 수 없습니다.제 코드는 다음과 같습니다. FILE *pFile; FILE *pFile2; char buffer[256]; pFile=fopen("myfile.txt", "r"); pFile2=fopen("myfile2.txt", r+); if(pFile==NULL) { perror("Error opening file."); } else { while(!feof(pFile)) { if(fgets(buffer, 100, pFile) != NULL) { fseek(pFile2, -100, SEEK_END); fprintf(pFile2..

programing 2022.08.30

스택 트레이스를 인쇄하기 위해 내부 프로그램에서 gdb를 호출하는 가장 좋은 방법?

스택 트레이스를 인쇄하기 위해 내부 프로그램에서 gdb를 호출하는 가장 좋은 방법? 다음과 같은 기능을 사용합니다. #include #include #include #include void print_trace() { char pid_buf[30]; sprintf(pid_buf, "--pid=%d", getpid()); char name_buf[512]; name_buf[readlink("/proc/self/exe", name_buf, 511)]=0; int child_pid = fork(); if (!child_pid) { dup2(2,1); // redirect output to stderr fprintf(stdout,"stack trace for %s pid=%s\n",name_buf,pid_buf..

programing 2022.08.29

C에서 0을 선두로 하는 인쇄

C에서 0을 선두로 하는 인쇄 리딩 리딩의 0 「」, 「」등입니다.01001를 참조해 주세요.번호는 다음과 같이 저장됩니다.1001 했습니다.case 또는 「」를 참조해 주세요.if로 char의 ""를 0이지만, 는 이 수 있다는 수 없어요, 는만, 이고, 고고고, 고고고고고 고고 고고 고고 고고 고고 고 ' ' ' the ' the ' the ' the ' the the the the the 。printf포맷 구문에서 제외됩니다.printf("%05d", zipCode); 0및 ""를 .5에 정수값의 폭을 나타냅니다. 1: "1"을 사용하는 : " " ""%02d"(날짜에 대해서는 생략 가능)1 컬럼의 숫자에 대해서만0을 채웁니다.예.,066. 2: § 2:"%03d"는, 을, 10열의 1개의 0을 패..

programing 2022.08.29

C의 이중 포인터 연속성 경고

C의 이중 포인터 연속성 경고 비정수 데이터에 대한 포인터는 같은 유형의 데이터를 구성하기 위한 포인터로 암묵적으로 변환할 수 있습니다. int *x = NULL; int const *y = x; 추가 간접과 일치하도록 추가 Const 수식자를 추가하는 것도 논리적으로 동일하게 동작해야 합니다. int * *x = NULL; int *const *y = x; /* okay */ int const *const *z = y; /* warning */ GCC 또는 Clang을 사용한 컴파일-Wall단, 플래그가 발생하면 다음 경고가 발생합니다. test.c:4:23: warning: initializing 'int const *const *' with an expression of type 'int *cons..

programing 2022.08.29

C 표준 라이브러리와 C POSIX 라이브러리의 차이점

C 표준 라이브러리와 C POSIX 라이브러리의 차이점 "C standard lib"와 "C POSIX lib"에 정의되어 있는 많은 헤더 파일도 "C standard lib"의 일부라는 것을 알게 되었기 때문에 "C standard lib"와 "C POSIX lib"에 약간 혼동됩니다. 따라서 "C standard lib"는 ANSI C 조직에 의해 정의된 lib로 플랫폼(Win32/Unix)마다 다른 구현이 있으며, "C POSIX lib"는 Unix와 같은 OS에서 "C standard lib"를 구현한 것일 뿐입니다. 그러나 "C POSIX lib"에는 "C standard lib"에 지정되지 않은 다음과 같은 헤더가 포함되어 있습니다.,,그리고.. 가지고 가다예를 들어, 나는 그것의 "C sta..

programing 2022.08.29

프리프로세서 디렉티브를 사용하여 OS를 확인하려면 어떻게 해야 합니까?

프리프로세서 디렉티브를 사용하여 OS를 확인하려면 어떻게 해야 합니까? 컴파일된 운영체제에 따라 다른 작업을 수행하려면 코드가 필요합니다.이런 걸 찾고 있어요 #ifdef OSisWindows // do Windows-specific stuff #else // do Unix-specific stuff #endif 방법이 있을까요?같은 일을 할 수 있는 더 좋은 방법이 있을까요?OS용 사전 정의된 매크로 사이트에는 완전한 체크 리스트가 있습니다.그 중 몇 가지는 다음과 같습니다.또, 입수처 링크도 포함되어 있습니다. 창문들 _WIN32와 64비트 모두 '' _WIN64 64비트 __CYGWIN__ Unix (Linux, *BSD, Mac OS X 제외) 이 체크의 사용상의 몇개의 함정에 대해서는, 이 관련..

programing 2022.08.28

왼쪽 패드 인쇄(스페이스 포함)

왼쪽 패드 인쇄(스페이스 포함) printf 사용 시 왼쪽에 공백이 있는 스트링은 어떻게 패딩합니까? 예를 들어, "Hello"를 40칸 앞에 인쇄하려고 합니다. 또한 인쇄하고 싶은 문자열은 여러 줄로 구성되어 있습니다.한 줄씩 따로 인쇄해야 하나요? EDIT: 확실히 하기 위해 각 행 앞에 정확히 40개의 공간을 인쇄해야 합니다."Hello"라는 단어를 40자 폭의 열에 인쇄하고 왼쪽에 공백을 채우려면 다음을 사용하십시오. char *ptr = "Hello"; printf("%40s\n", ptr); 그러면 35개의 공간이 생기고 "안녕하세요"라는 단어가 나옵니다.열의 너비를 알 수 있을 때는 이렇게 포맷하지만 데이터는 변경됩니다(그것도 한 가지 방법입니다). 정확히 40개의 공백이 필요한 경우 텍스트..

programing 2022.08.28

SDL2에서 텍스트를 렌더링하는 방법

SDL2에서 텍스트를 렌더링하는 방법 사용하고 있습니다.SDL_Window ★★★★★★★★★★★★★★★★★」SDL_Renderer. SDL_TTFSDL_Render/SDL_Window약면면, 면??네, 렌더러와 윈도우를 가지고 있고, 실제로 표면을 만지는 것에 대한 생각이 없기 때문에 텍스처를 만드는 것에 신경을 쓰는 것이 좋을지도 모릅니다.여기 샘플 코드가 있습니다. //this opens a font style and sets a size TTF_Font* Sans = TTF_OpenFont("Sans.ttf", 24); // this is the color in rgb format, // maxing out all would give you the color white, // and it will ..

programing 2022.08.27
반응형