__imp__WSACleanup@0 외부 기호(참조 위치: _main 함수)에서 확인하지 못했습니다
Visual Studio에서 소켓 프로그래밍을 할때 위와 같은 에러가 뜰 경우가 있는데 헤더 선언부에#include #pragma comment(lib, "ws2_32.lib") 를 써주거나 속성창에서 추가 종속성에 ws2_32.lib를 추가해주면 해당 오류가 해결이 된다.
Visual Studio에서 소켓 프로그래밍을 할때 위와 같은 에러가 뜰 경우가 있는데 헤더 선언부에#include #pragma comment(lib, "ws2_32.lib") 를 써주거나 속성창에서 추가 종속성에 ws2_32.lib를 추가해주면 해당 오류가 해결이 된다.
다음은 벡터의 사용 예제이다. #include #include using namespace std; void main(){ vector v; v.push_back(10); v.push_back(20); v.push_back(30); v.push_back(40); v.push_back(50); for ( vector::size_type i = 0; i
c++에서 콘솔 입력을 받았을때 입력버퍼에 저장한뒤에 차근 차근 불러오게 된다. 앞서말한 cin 또는 cin.getline을 이용해 값을 받아온 뒤 남은 입력값은 입력 버퍼에 남게되고다음에 cin을 호출했을 경우 값을 입력하지 않아도 입력버퍼에 남아있던 값을 가져오게 된다. 입력버퍼에 입력값이 남아있게 되어서 프로그램이 오류가 날 수 있는데 이를 해결하기위해 입력버퍼를 초기화 해야한다여기서 사용하는것이 cin.clear()이다.소스코드 중간에 필요한곳에cin.clear(); 로 호출만 하면 손쉽게 입력버퍼를 초기화 할 수 있다.
문자열을 한줄단위로 입력을 받기위해서 사용하는 것이 cin.getline()함수이다. getline 함수의 파라미터는 다음과 같다. 문자열을 받을 문자열 포인터 문자열의 최대 길이 구분자 두번째 파라미터는 한번에 입력받을 문자열의 최대 길이이며, 이 길이에는 마지막 NULL문자까지 포함한다. 예를들어 HELLO를 입력받았을 경우 6자리 문자열로 인식된다. 마지막 파라미터는 문자열을 끊는 구분자다. 기본적으로 NULL('\n')로 설정되어있다. 결론적으로 cin.getline()함수는 Console 입력을 구분자를 만나거나 혹은 최대 문자열만큼 배열 담는 역할을 수행하며, 남은 문자열은 계속해서 입력버퍼에 유지된다. 아래는 cin.getline()함수의 예시이다. #include using ..
LINK : fatal error LNK1104: 'LIBC.lib' 파일을 열 수 없습니다. 코딩중에 갑자기 처음보는 에러가 나와서 당황했다.해당 오류의 원인은 Visual Studio가 이제 더이상 단일쓰레드를 지원하지 않아서 라고 한다.그럼 해결방법은 어떻게 되는것인가? 해당 라이브러리를 무시하면 된다고 한다. 프로젝트 -> 프로젝트 속성 -> 구성 속성 -> 링커 ->입력 까지 들어가면 특정 라이브러리 무시 칸이있다 여기에 libc.lib; 를 쓰고 확인을 누른다. 이렇게 해당 속성을 건드려 준뒤에 빌드를 하니성공메시지가 떴다.