본문 바로가기

과제모음

(122)
Select함수를 이용한 1:1 채팅(Server) #include #include #include #include #include #include #include #pragma comment(lib,"ws2_32.lib") // ws2_32.lib void ErrorHandling(char *message) // 에러메시지 출력함수 { printf(message); exit(0); } int main() { WSADATA wsaData; // 소켓 변수 선언 SOCKET serverSocket; SOCKET clientSocket; SOCKADDR_IN servAddr; SOCKADDR_IN clntAddr; unsigned int clntLen=0; char chatdata[65536]; fd_set read_fds; // 셀렉트함수 사용 struct..
[컴프2]C언어로 작성한 야구게임 Main 소스 #include "Baseball.h" void main(){ // 야구게임 Baseball(); } Baseball.c #include "Baseball.h" void Baseball(){ int a,b,c; // 랜덤생성 int ca,cb,cc; // 유저입력 int scnt,bcnt, ocnt; // 스트라이크,볼,아웃 카운트 a=b=c=0; // 변수를 초기화 ca=cb=cc=0; scnt = 0; bcnt = 0; ocnt = 0; srand(time(NULL)); while(a==b || a==c || b==c){ // 다른 숫자 나오게 하기위해 a = rand()%10; b = rand()%10; c = rand()%10; } printf("%d %d %d\n", a,b,c);..
[컴프2]전역변수의 확장 사용(extern) #include "print.h" #include "printsquare.h" int data; void main(){ data = 3; print(); printsquare(); } 전역변수로 선언된 data 변수를 다른 파일에서 사용하기 위해서는 extern 인자를 사용하여 해당 변수가 다른곳에 이미 정의되어 있음을 명시하여야 한다. #include "print.h" extern data; void print(){ printf("Input : %d\n", data); }
[컴프2]헤더파일 중복선언 방지(ifndef & pragma once) 프로그램을 작성할 때에 헤더파일의 재정의를 방지하기 위해 보통 다음과 같은 구문을 사용한다 #ifndef _헤더명_H #define _헤더명_H ..소스본문 #endif 위릐 세줄을 다음과 같이 한줄로 줄일수 있다. #pragma once #include "print.h" void printsquare(int data){ print(data*data); } ++ 그외 define의 사용법 #define A #define A B - A = B 정의 #define A 3 - A는 3으로 정의 #define int AAA(int A) - 간단하고 짧은 함수의 경우에만 사용
[컴프2]C 파일입출력이용한 파일복사 #include #include void main(int argc, char** argv){ int size = 0; char data[256] = {0}; FILE* src = fopen(argv[1], "rt"); // 카피대상 FILE* dest = fopen(argv[2], "wt"); // 카피받음 do{ memset(data, 0, 256); // 메모리초기화 size = fread(data, 1, 255, src);// a.txt 데이터 읽어옴 fwrite(data, 1, size, dest); // b.txt에 입력 }while(size > 1); fclose(src); // 프로세스 종료 fclose(dest); system("C:\\a.txt"); // 두파일 열어서 비교 system(..
[컴프2]C 파일입출력 - 입력받은 문자열을 파일에 저장 #include #include void main(){ char data[256] = {0}; // 입력받을변수 FILE* src = fopen("C:\\a.txt", "wt"); // 파일오픈 if(src == NULL){ // 예외처리 printf("Fail\n"); exit(0); } printf("Input string\n"); // 문자열 입력 scanf("%s", data); fwrite(data, 1, 256, src); // 버퍼에있는 문자열을 파일로 출력 fclose(src); // 프로세스종료 system("C:\\a.txt"); // 입력확인 }
[컴프2]C - 동적할당(malloc이용) #include #include void mallocex(){ int n; int *size; int i; printf("Input size : "); scanf_s("%d", &n); size = (int*)malloc(sizeof(int)*n); for(i=0; i
[컴프2]구조체, 공용체, 열거형(struct, union & enum) #include #include enum StructType{CHAR = 1,INT,FLOAT,DOUBLE}; // 열거형 union DataType{ // 공용체 char a; int b; float c; double d; }; struct DataStruct{ // 구조체 enum StructType AA; union DataType BB; }; void mallocex(){ // 동적할당 int n; int i; struct DataStruct *use; printf("Input size : "); scanf_s("%d", &n); // 사이즈 입력 use = (struct DataStruct *)malloc(sizeof(struct DataStruct)*n); // 동적할당 for(i=0; i