dwhylee   7년 전

문제 푼 다음에 크기를 조금 키워서 실행해보고 싶어서 128,256의 크기로 최대 수행( 0101반복되는 ) 조건으로 예제를 만들어서

txt 파일로 만든 후 ctrl c ctrl v 로 복사하여 실행 시켰는데

128의 경우 128까지 잘 복사하여 들고오는데 256의 크기를 복사하는 경우에는 112까지만 복사해서 중간에 공백이 생기더군요,

콘솔 버퍼크기의 문제인가 싶어 설정으로 크기와 개수를 늘렸지만 별 차이는 없었습니다.

다른 환경에서는 케이스 개수가 많아서 실행해보진 못했습니다. CodeBlock 은 ctrl c v 가 안되더라구요.


왜 그런지 궁금해서 질문 남깁니다.
이미지가 안올라가서 캡쳐본은 못 올리겠네요.

yukariko   7년 전

원인은 잘 모르겠으나 입력이 큰 경우는 파일 입출력 또는 리다이렉션을 이용해 보시면 좋을것 같습니다.

파일 입출력은 fopen fread 등으로 사용 할 수 있고

리다이렉션은

커멘드 창에서 program < input.txt

등의 명령으로 사용하실 수 있습니다.

설정을 통해 vs에서도 적용할 수도 있는데, 위 테스트만을 위한다면 컴파일된 프로그램이 있는 경로로 가셔서 위 방법대로 하시면 될 것 같습니다.

dwhylee   7년 전

그 방법 이전에 이 궁금증이 생기니깐 이걸 해결하고싶은 마음에 ㅋㅋ... 별로 쓸대없는 일 이려나요 ㅎㅎ
답변 감사합니다.

yukariko   7년 전

제가 256 * 256 입력으로 직접 테스트해보았는데 입출력 모두 문제 없었습니다.

코드에 문제가 있거나 환경의 문제가 아닐까 싶네요

dwhylee   7년 전

제가 직접 쳐서 cin 으로 string 받는 것은 300 넘어도 문제 없더라구요,
단순히 txt 에 있는 숫자들을 ctrl c ctrl v 로 복사해오니 문제가 생겼습니다.
환경도 한번 살펴봐야겠네요. 파일 입출력으로 해보셨는지요?

yukariko   7년 전

똑같은 방법으로 콘솔을 띄운 후 텍스트파일에서 ctrl c ctrl v 하였습니다.

dwhylee   7년 전

string tmp;
for (int i = 0; i < num; i++){
cin >> tmp;
memcpy(list[i], tmp.c_str(), strlen(tmp.c_str()) + 1);

}

방법을 썼는데 코드가 어떤 영향이 있는지는 확인 해봐야 알 것 같네요. 답변 감사합니다.

댓글을 작성하려면 로그인해야 합니다.