에서로드 할 때 무한 루프로 이어지는 cin.get I (더 큰 응용 프로그램의 일부에 불과하지만 문제는 다음에서 오는 것 같다)에 다음 코드를 가지고 제공 할 때동안 파일
char inputChar;
while (cin.get(inputChar)){
cout<< inputChar<< "\n";
}
'echo "aaaaa aaaaa"| tst'(위의 프로그램이 tst.out으로 컴파일 된 경우) 프로그램이 올바르게 작동하지만 텍스트 파일을 통해 입력을 제공하면 (예 : './tst mytest.txt') 파일 자체의 내용과 상관없이 커서가 무한 루프 (커서가 다음 줄로 이동하여 다시 프롬프트가 나타나지 않습니다.)로 실행되는 것처럼 보입니다.
왜 이런 일이 벌어지고 있는지, 그리고이 문제를 해결하기 위해 내가 할 수있는 일에 대해 알 수있는 사람이 있습니까?
ps : 유닉스 터미널에서 컴파일하고 실행하고 있습니다.
감사
대화 형 IO는 사용자 입력을 기다리고, 파이프는 EOF를가집니다. 사용자가 EOF를 위해 Ctrl-D를 입력하게하십시오 –
대소 문자를 정확하게 설명하고 있습니까? 'echo "aaaa aaaaa"| tst'는 파이프에서 읽을 것이고'./tst mytest.txt'는 보통 대화 형 입력을 사용합니다. – Angew
파일에서 읽으려면 ifstream 객체를 만들어야합니다. cin 표준 입력에서 읽습니다. – NathanOliver