acruxdy   5년 전

어디에서 잘못되었는지, 잘 모르겠어요...

eric00513   5년 전

입력을 보시면 중간에 띄어쓰기가 있습니다. 그래서 scanf대신 fgets와 같은 함수를 사용해야 합니다. fgets는 띄어쓰기가까지 입력이 가능하고, scanf는 띄어쓰기를 입력 받지 못합니다. 

eric00513   5년 전

그냥 scanf 빼고 fgets(str, 50, stdin)을 넣으시면 되요

eric00513   5년 전

; 포함해서요

acruxdy   5년 전

fgets();함수를 아직 써 보지 않았어서 그랬어요. stdin은 무엇인가요? str아닌가요?

eric00513   5년 전

str은 문자열 이름이잖아요

eric00513   5년 전

그리고 stdin은 입력한다의 뜻을 가지고 있어요

eric00513   5년 전

그래서 첫 번째 파라미터는 메모리 공간에서 어디에 입력 받는지 나타내는 문자열의 이름을 입력하고요 두 번째 파라키터는 최대 입력하는 글자 수를 뜻하구요 마지막 파라미터는 단순히 입력을 뜻합니다.

eric00513   5년 전

헸갈리시면 그냥 str 이름 대신 a나 다른 걸 써봐요 fgets 나중에 사용할 때 전혀 안 헸갈릴 거에요

eric00513   5년 전

그리고 한 가지요 배열 50개 잡으면 안 돼요 왜냐하면 문자열은 끝을 나타내는 null문자가 있어야 하는데, 만약 50글자의 문장이 입력 되면, null문자의 공간이 없어져 또 틀릴 거에요 그니까 배열 크기를 50보다 크게 잡으세요.

acruxdy   5년 전

실행 자체가 안 되네요.....

eric00513   5년 전

실행 잘 되는 데요?

acruxdy   5년 전

디버깅 오류가 나요

eric00513   5년 전

아닌가요 저 이 소스 비슷한 거 제출했는데, 출력 형식이 잘못되었습니다 가 나타났어요

eric00513   5년 전

그럼 이거일 거에요 fgets는 띄어쓰기 도 입력 받아서 줄내리기도 입력 받을 걸요? 연구를 해 보세요 아니면 https://www.acmicpc.net/board/...참고하세요.

eric00513   5년 전

fgets대신 cin.getline(&a[1], 55); 써보세요 그럼 맞았습니다 떠요

Green55   5년 전

일단 n부터 입력 받으셔야 할 것 같습니다.

eric00513   5년 전

ㅋㅋㅋ n이 없어요

eric00513   5년 전

개수를 알고 시작하셔야죠

startlink   5년 전

stdin은 standard input의 의미를 가지고 있어요

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