공간을 본 후 코드를 완전히 읽지 않습니다. 이 공백을 읽도록 내가 코드를 변경하려면 어떻게scanf로 공백을 읽으려면 어떻게해야합니까?
char line[300];
printf("Enter a string to be checked: ");
scanf("%s", line);
내가 리디렉션을 통해 입력에 노력하고있어 문자열 :
((AA) <> [[[{[X]]] ] <>
공간을 본 후 코드를 완전히 읽지 않습니다. 이 공백을 읽도록 내가 코드를 변경하려면 어떻게scanf로 공백을 읽으려면 어떻게해야합니까?
char line[300];
printf("Enter a string to be checked: ");
scanf("%s", line);
내가 리디렉션을 통해 입력에 노력하고있어 문자열 :
((AA) <> [[[{[X]]] ] <>
당신은 scanf와의는 fgets intsead를 사용할 수 있습니다. 예 :
fgets(line, 1024, stdin);
그리고 gets를 사용할 수 있지만 좋은 방법은 아닙니다. – someuser
무엇? ** **이 답변은 정답입니다. –
% s 비 공백 문자 시퀀스와 일치합니다. 다음 포인터는 char에 대한 포인터 여야하며 배열은 모든 시퀀스와 종료 NUL 문자를 허용 할만큼 충분히 커야합니다. 입력 문자열은 공백이나 최대 필드 너비에서 멈 춥니 다.
다른 형식 문자열을 선택해야합니다. 입력 문자열에서 정확히 무엇을 성취하려고하는지 명확하게 알 수는 없습니다.
코드를 확인하시기 바랍니다 ..
printf("Enter a string to be checked: ");
gets(line);
puts(line);
출력 : -
Enter a string to be checked: ((a a) < > [ [ [ { [ x ] ]]] <>)
((a a) < > [ [ [ { [ x ] ]]] <>)
Press any key to continue . . .
이 질문에 대한 답을 제공하지 않습니다. 비평하거나 저자의 설명을 요청하려면 게시물 아래에 의견을 남겨 둡니다. – ryadavilli
저자 문자열로 코드를 테스트했습니다. 그래서 bahaviour를 테스트하지 않고 어떤 대답을 판단하지 마십시오. –
이전에 게시 한대로 fgets(line, size, stdin);
을 사용해야합니다. 매번 동일한 입력 크기를 예상하므로 gets()
을 절대로 사용하지 않아야합니다. 최소한 gcc 인 컴파일러는 사용하지 말라고 경고합니다.
가능한 복제본 [C에서 scanf를 사용하여 공백을 읽는 방법] (http://stackoverflow.com/questions/3765023/how-do-i-read-white-space-using-scanf-in- c) –
가능한 복제본 [어떻게 scanf를 사용하여 공백을 입력 할 수 있습니까?] (http://stackoverflow.com/questions/1247989/how-do-you-allow-spaces-to-be-entered-using- scanf) –