개발/C

· 개발/C
\n 처리. fgets은 \n까지 저장하는 친구이기 때문이다. 그래서 이를 처리해주고 넘어가야한다. int main (void){ char end[16]; fputs("메시지 입력 : ", stdout); fgets(end, 16, stdin); printf("%d\n", (int)strlen(end)); end[strlen(end)-1] = '\0'; printf("%d\n", (int)strlen(end)); printf("%d\n", strcmp(end, "123")); } Strcmp int strcmp(const char *s1, const char *s2); 두 문자열이 [완전히] 일치하는지 확인하는 함수. 아닌경우 틀린 코드끼리의 아스키값 차이를 반환한다. fget char *fgets(ch..
· 개발/C
미션 1. 실시간으로 받은 내용을 output 해보자 2. buffer 크기 이상으로 받은 내용을 output 해보자 (hint : 무조건 한번에 출력해야하는건 아니다. 나눠서 출력해도 무방) 1번은 굉장히 쉽다. 버퍼가 일을 잘해주기 때문에 그 이상의 입력값도 알아서 인식해서 뱉어준다. 그런데 어려운건 [str의 끝은 0이어야 한다]는 규칙을 지키며 깔끔하게 짜는게 어려웠다. 전체 코드는 다음과 같다. 6으로 제한을 걸어둔 상태로 그 이상도 깔끔하게 나오게 해보기 위해 노력해보았다. #include #include #include #include #include #include #include #include #include #define MSG_MAX 6 #define BUF_LEN 6 int mai..
· 개발/C
scanf() %s 는 스페이스를 끝으로 인식해 그 다음 0을 넣어 문자열을 종결시킨다. stdin/stdout을 거쳐 동작. char str[16]; printf("msg : %s", str); scanf("result is %s", str); //scanf("%[^;]s", str); 이러면 끝을 ;로 인식 fgets() 스페이스를 극복하기 위해 나왔다. stdout/stdin buffer flow로 배열포인터에 size-1개씩 \n까지 포함해 저장한다. fputs("메시지를 입력하세요 : ", stdout); fgets(message, 512, stdin); fscanf()/fprintf() file buffer로 동작 sscanf()/sprintf() string buffer로 동작. https:..
· 개발/C
미션 1. 고객의 요청을 대기중인 서버를 만들어보자 (hint. 고객의 요청을 복사하는 서버/고객 코드) https://koyo.kr/post/c-socket-example/ 이 프로젝트를 따라해보았당 block 기다리는 행위. 어디까지 진행하고 클라이언트가 접속할때까지 기다린다? 그렇다면 블락된 것. socket() 소켓은 일종의 통신창구. 객체 내 통신의 종단점. 이 서버가 다른 서버와 통신하고 싶다면 개설하는 통로. int socket(int domain, int type, int protocol); 입력 domain : 인터넷 프로토콜 결정 type : 데이터 전송 프로토콜 결정. protocol : 소켓에 특별한 프로토콜이 필요할 경우. '소통 도메인'을 지정. 출력 새 소켓의 파일디스크립터. ..
yeonlee
'개발/C' 카테고리의 글 목록 (2 Page)