>  기사  >  백엔드 개발  >  go에서 사용자가 입력한 문자열을 n번 인쇄합니다.

go에서 사용자가 입력한 문자열을 n번 인쇄합니다.

WBOY
WBOY앞으로
2024-02-06 08:00:07450검색

在 go 中打印用户输入的字符串 n 次

질문 내용

초보인데 사용자가 입력한 문자열을 n번 출력하고 싶은데 공백이 n번만 출력됩니다. 이것이 내 코드입니다

으아악

이 문제를 해결할 방법이 있나요? 감사해요.


정답


보기 scanf 문서

귀하의 질문과 가장 관련성이 높은 두 가지 사항은 다음과 같습니다.

  • 공백으로 구분된 값
  • 입력의 줄 바꿈은 형식의 줄 바꿈과 일치해야 합니다

따라서 애플리케이션을 있는 그대로 실행하고 20 foo 并按 Enter 键,您将获得预期的输出(foo 打印 20 次)。但是,如果您输入 20를 입력하고 Enter를 누르면 20개의 빈 줄이 표시됩니다.

으아악

"입력의 줄 바꿈은 형식의 줄 바꿈과 일치해야 합니다" 사양에 따라 panic: Unexpected newline으로 인해 패닉이 발생합니다. 각 항목을 입력한 후 Enter 키를 누르고 싶다면 fmt.Scanf("%dn", &n)를 사용할 수 있습니다. 그러나 귀하의 의견에서 언급한 것처럼 fmt.Scanf("%sn", &s)를 사용하고 공백이 포함된 문자열을 입력하면 첫 번째 비트만 가져옵니다(panic: Unexpected newline 而出现恐慌,因为根据规范,“输入中的换行符必须与格式中的换行符匹配”。假设您希望在每次输入后按 Enter 键,则可以使用 fmt.Scanf("%dn", &n)。但是,正如您在评论中提到的,如果您使用 fmt.Scanf("%sn", &s) 并输入包含空格的字符串,那么您只会得到第一位(因为 scanf 공백을 다음과 같이 사용하기 때문). 구분 기호).

stdin에서 전체 행을 가져오려면 이 질문에 대한 답변에서

와 같은 몇 가지 옵션을 제공합니다. 으아악

위 내용은 go에서 사용자가 입력한 문자열을 n번 인쇄합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제