2012-01-09 3 views
1

나는 전에 한 대회에 있었고, 나는 또 다른 대회를 들여다 보았다. 그러나 그 때, 나는 기계에서 사용자 입력을받는 것에 대해 무엇을해야할지 몰랐다. 정상적인 사람이 그것을 사용할 때, 나는 키워드를 할당함으로써 종료 할 수 있다는 것을 알지만, 경쟁 테스트에서 자신의 코드를 생성하는 머신에 파이프를 연결하면 어떻게 처리 할 수 ​​있습니까? 마지막 입력 내용을 모를 때 잠시 중단 될 수있는 코드를 작성하려면 어떻게해야합니까?프로그래밍 경쟁에서 입력을 할 때 스캐너가 입력을 읽지 않도록하려면 어떻게해야합니까?

은 자바이 볼 때 :

while(sc.hasNext()){ /*code here. Breaks out when machine input is done*/} 

나는 그것으로보고, 나는이 건너 온 : ". STDOUT에 STDIN 및 출력에서 ​​입력을 읽기" 자바 링크를 클릭하면 버퍼링 된 리더 또는 스캐너 용 위키 피 디아가 제공되었지만 추가 정보는 없지만 방금 준 예제 코드는 제공하지 않았습니다.

샘플 입력 :

2 
2 5 
3 4 8 

은 첫 번째 줄을 가정 수 있습니다 더 라인을 읽는 방법 많은입니다. 각 개별 라인에서 독서를 멈출 때를 어떻게 알 수 있습니까? 아니면 전체 라인을 읽었습니까?

+0

질문이 너무 모호합니다. 당신은 전혀 문맥을 포함하지 않습니다. 잠시 쉬는 법을 묻고 있습니까? "완전한"입력을받은시기를 아는 방법을 묻고 있습니까? (그렇다면 예상되는 입력에 대해 더 많이 알 필요가 있습니다). 질문은 정말로 구체적이거나 명확하지 않습니다. – Steve

+0

묵시적으로 보였지만 내 질문을 추가했습니다. 그러나 나는 잠시 쉬는 법을 묻는 것이 아닙니다. 마지막 입력 내용을 모를 때 무엇을해야하는지 알고 싶습니다. 대회에서는 사람들이 아닌 테스트 환경에서 코드를 테스트합니다. – Andy

답변

1

일부 경쟁 문제점이 example에 나타낸 바와 같이, 유효한 입력을 결정하는 count을 지정.

+0

빠른 샘플 입력을 확인하십시오. – Andy

+0

@Andy 그의 예제 링크는 의사 코드에서와 똑같은 일을하지만 Java에서는 똑같은 것을 말합니다 - 우리는 모두 같은 것을 말하고 있습니다 ... 나는 당신이 그를 필요로하지 않는다고 생각합니다. 샘플 입력을 확인하십시오 ... 당신이 그것을 찾으면 답은 이미 당신을 위해 있습니다. – Steve

2
while(sc.hasNext() && !shouldStopReading){ /*code here*/} 

또는도있다 ...

while(sc.hasNext()){ /*code here*/ if (shouldStopReading) { break; } } 

이 편집에 응답하려면 :

샘플 입력 : 2 2 5 3 4 8

는 가정 수 있습니다 첫번째 줄은 얼마나 많은 줄을 읽을 지입니다. 은 각 개별 회선에서 읽기를 중단 할 때를 어떻게 알 수 있습니까? 아니면 전체 회선을 번으로 읽어야합니까?

"줄"은 일반적으로 Windows의 캐리지 리턴/줄 바꿈 조합이나 Mac/Unix/Linux의 줄 바꿈으로 끝납니다. 선을 구분하기 위해 이러한 문자를 찾을 수 있습니다.

일반적으로 "줄"을 읽는 기능이 있습니다.

귀하의 사례는 매우 간단합니다. 의사 코드 :로

String lineCountString = ReadLine(); 
int lineCount = StringToInt(lineCountString); 
for (i from 0 to lineCount - 1) 
    String aLine = ReadLine(); 
    DoSomethingWithEachLine(aLine); 
+0

"shouldStopReading"이란 무엇입니까? – Andy

+0

부울 값 – Steve

2

http://www.go-hero.net/jam/으로 이동하여 Google 코드 잼에 입력 한 모든 솔루션을 기록합니다.

언어별로 검색하고 입력 파일을 읽는 방법에 대한 많은 예제를 볼 수 있습니다.

예제를 살펴보면 다양한 방법을 알게 될 것입니다.

+0

참조 해 주셔서 감사합니다. – Andy

관련 문제