lllllllhisll   5년 전

처음에 시간초과가 발생해서 cin을 scanf로 바꾸고 컴파일 하니까 런타임에러가 뜨네요......

그리고 scanf로 바꾸니까 비쥬얼에서 scanf_s로 바꿔라해서 바꾸니까 여기서 컴파일에러가뜨네요.....

도와주세요 ㅠㅠㅠ

제가 이런 에러나는게 처음이라서 구글에도 찾아봤는데 마땅한 답이안나와서...

djm03178   5년 전

scanf로 받은 문자열은 ==이 아닌 cstring 헤더에 있는 strcmp 함수를 사용해야 합니다. == 으로 비교가 가능한 건 string 객체입니다.

scanf_s 는 표준 함수가 아니라서 채점 환경 g++에서는 인식할 수 없습니다.

cin cout을 사용할 때는, 특히 지금처럼 입력과 출력이 번갈아 나타날 때는 main 함수 첫머리에 ios_base::sync_with_stdio(false); 와 cin.tie(NULL); 을 넣어주면 빨라집니다. 단, 이 때는 scanf나 printf를 비롯한 C 표준 입출력을 일절 혼용하지 않아야 합니다. 그리고 개행 문자는 절대 endl을 쓰지 말고 '\n'을 쓰세요.

seico75   5년 전

&op는 string 객체의 포인터라서 scanf에 저렇게 쓰면 안될것 같습니다.  char배열로 받아 string에 넣거나 위에 분 말씀을 참고해서 그냥 cin를 쓰는게 나아보입니다.

djm03178   5년 전

? scanf를 쓰셨길래 당연히 char 배열일줄 알았는데 string을 그대로 쓰셨군요.

절대로, 절대로 해서는 안 되는 코드입니다.

lllllllhisll   5년 전

아 너무감사합니다!! 제가 C를 아직 잘몰라서 실수가있었네요 ㅠㅠㅠ

잊지않고 잘 쓰겠습니다 ^ㅡ^

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