728x90

프로그래밍 138

[오류_C/C++] Mac에서 sleep함수 사용하는 방법 feat 버퍼링

목차 Sleep() 문제점 해결방법 Sleep() 지연시간을 주는 함수이다. windows에서는 #include 와 함께 사용된다. 하지만 Mac에서는 다르다. Sleep( )괄호 안에는 숫자를 넣어 지연시간을 설정하는데, windows에서는 ms(밀리새컨드) 단위이다. (즉, 1초를 지연시키고 싶다면 1000을 넣어주면된다. 하지만 Mac에서는 다르다.) 문제점 Mac OS와 Windows는 헤더파일과 함수, 사용법에서 차이가 있다. 아래 예제(주사위를 3번 던지고 나온 값을 1초마다 각각 출력)를 수행하고싶었다. 아래 예제는 현재 sleep이 반영이 안되어있다. #include #include //시간 #include //rand,srand int main(){ int dice = 0; srand(t..

[오류_C/C++] MAC에서 system("cls")를 사용하고싶다면?

macOS에서는 windows와 다르게 허용되는 헤더파일들이 많이 다르다. 그중 콘솔의 화면을 clear해주는 문장을 Mac에서 사용하고싶다면 #include system("clear"); 이렇게 두가지를 이용해주면된다. Mac이랑 Window랑 헤더파일 다른것과 함수 사용법이 꽤 많이 다른것같은데, 함께 협업 프로젝트를 한다면 어떻게 해야하는지 알아보는게 좋을것 같다.

예제) 크리티컬 확률과 몬스터 사냥하기 feat 줄 정렬

느낀점 줄 정렬이라는것을 처음 신경써서 해보았다. 아직 주석이라는 부분을 신경쓰지 못해서 아쉬운데 다음 예제부터는 주석도 신경쓰고자 한다. /* 지난번에 만들었던 크리티컬 데미지 주는 함수 수정해서 60% 확률로 크리티컬 데미지 주는 함수로 만들기 - Loop 사용해서 종료 입력 전까지 반복 - 플레이어가 어떤 상태인지 출력해서 보여줄 것(왜 크리티컬인지, 아닌지 알 수 있어야 함) */ #include #include #include #include #include // 윈도우에서는 이다. int main(){ int criticalPercent; int damage, cridamage; int monster = 100; srand(time(NULL)); printf("[몬스터 등장]\n"); whil..

[오류_C/C++] scanf(%d,&a)에 문자를 입력할 경우 컴퓨터는 어떻게 받아들이는가?

오류 간단한 예제를 풀던 중 오류가 발생하여 찾아보았다. scanf(%d,&a)에 문자를 입력했더니, 무한으로 출력이 되는것이었다. 해당 문제가 발생한 예제는 아래 예제이다. // 반복문 사용해서 User에게 아무숫자나 입력받기 // 그 숫자가 홀수인지 짝수인지 구별해서 출력하는 프로그램 만들기. #include #include //반복문 사용해서 User에게 아무숫자나 입력받기 // 그 숫자가 홀수인지 짝수인지 구별해서 출력하는 프로그램 만들기. int check(int userInput); int main(){ int userInput = 1; while(1){ printf("아무숫자나 입력하세요. 홀짝 구분해드릴께요."); scanf("%d",&userInput); if(userInput == 'q..

[C/C++] 자료형, byte, 아스키코드

자료형 개념 자료형(Data Type)은 데이터를 표현하는 방법을 의미한다. 이러한 자료형은 미리 정의되어서 우리는 자료형의 이름을 이용하여 쉽게 메모리 공간을 할당할 수 있다. 정수형 Char(1 byte) short(2byte) int(4byte) long(windows- 4byte, Mac - 8byte) longlong(8byte) 실수형 float (4byte) double(8byte) longdouble(8byte이상) * 책이나 블로그에 나와있는 자료형의 크기 말고, 내 컴퓨터에 맞는 자료형의 크기를 직접 알아 보고싶은 경우 sizeof()라는 함수를 사용한다. (window와 mac은 다른부분이 있다.) #include #include //sizeof()함수로 자료형 크기 알아보기 int ..

C 연습 예제(정수, 데이터타입, if, while)

정수 계산하기 #include #include int threeCal(int x, int y, int z); //x+y*z int secondCal(int x, int y, int z);//(x-y)*(y+z)*(z%x) //정수 3개를 입력받아서 x+y*z의 결과를 출력하는 프로그램 int main(){ int x,y,z; printf("세 숫자를 입력해주세요."); scanf("%d %d %d", &x, &y, &z); printf("입력하신 세 숫자의 %d + %d * %d의 값은 %d 입니다.\n", x,y,z,threeCal(x,y,z)); printf("변형된식 (%d-%d)*(%d+%d)*(%d%%%d)의 값은 %d입니다.",x,y,y,z,z,x,secondCal(x,y,z)); }//mai..

[예제] 삼항연산자를 이용한 가위바위보

문제 컴퓨터는 바위만 낼 수 있다. 사용자의 입력을 받아서 이겼는지, 졌는지, 비겼는지를 출력해보자. 나의 풀이 해석 포인트는 2가지였다. 1. scanf의 사용 사용자의 입력을 받을 변수를 하나 선언해준다. 문법 : scanf("%d",&선언된 변수); 2. 삼항연산자의 사용 (조건문) ? A : B 삼항연산자를 연속하여 두번사용 삼항연산자 안에 printf를 사용할 수 있었기 때문에 풀 수 있었다.

간단한 컴퓨터의 구성요소 및 프로그램 동작이해

먼저 컴퓨터 구성요소를 보면 크게 아래와 같이 나뉘어져 있다. 모니터(출력장치) 키보드,마우스(입력장치) 하드디스크(HDD, SSD),비휘발성 저장장치 : 싸지만, 느리다 메모리(RAM), 휘발성 저장장치 : CPU(연산장치) GPU(그래픽카드_연산장치) 아래는 내부 동작과정을 간단하게 나타낸 사진이다. 여기에서 메모리에 사용하기 위해 올라가 있는 정보를 프로세스라고한다. (프로세스는 컴퓨터에서 작업관리자에 들어가보면 프로세스라고 써있는것을 확인할 수 있다) 프로세스와는 다르게 프로그램이라는 용어도 있는데 다음과 같다. * 프로그램 = 하드디스크 안에 있는 실행할 수 있는 무언가 이다. (소프트웨어, 프로그램, 앱, 어플리케이션 등으로 불린다.) 프로세스는 연산을 위해서 CPU에게 계산을 부탁하는데, 프..

[C/C++] 변수 기초 1(int, float)

기본개념 변수 : 컴퓨터 메모리에 값을 저장하기위한 공간 함수 : 컴퓨터가 작업을 수행하도록 하는 기능 각각 종류가 많다. 변수 : 구조체, 클래스, 대리자 함수 : 매서드, 프로시저, 이벤트 변수의• 의미 2가지 수학적: 정해지지 않은, 임의의 값을 대입할 수 있는 문자를 의미 프로그래밍: 값을 저장할 수 있는 메모리 공간에 붙은 이름, 혹은 메모리 공간 자체를 의미한다. 메모리를 위해 컴퓨터의 간단한 구조는 아래 블로그 참조 바랍니다. https://kyungtaek.tistory.com/12 규칙 변수 이름을 짓는 규칙이 있다.(코딩 컨벤션의 일부) • 변수의 이름은 알파벳, 숫자, 언더바_로 구성된다. • 대소문자를 구분한다. 즉 Num과 num은 서로 다른변수이다. • 변수의 이름은 숫자로 시작..

[C/C++] 연산자 기초

연산자: 특정 연산을 요구할 때 사용하는 약속된 기호이다. Operator라고 한다. 산술연산자 -> 산술에 연관된 연산자다. 단항연산자 -> 항이 1개인 연산자다(++,-- 등) 이항연산자 -> 항이 2개인 연산자다(x+y -> x,y항이 2개) 삼항연산자 -> 항이 3개인 연산자다(x?y:z) 삼항연산자 예시) 현재체력 20, 힐량은 변수, Max 체력 50 이항연산자 - 대입연산자 : (=) 연산자 오른쪽에 있는 값을 연산자 왼쪽에 있는 변수에 대입 - 산술연산자: 연산자 오른쪽에 있는 값을 연산자 왼쪽에 연산(수학에 사용되는 연산자들이 있다.) + , -, / , * , % 여기서 %는 mod연산이라고 불리며 나머지를 반환한다. 복합 대입 연산자: 다른 연산자와 합쳐진 형태의 대입 연산자 - *=..

728x90