리눅스 리다이렉션 c프로그래밍, 초보자 질문~

글쓴이: 익명 사용자 / 작성시간: 금, 2011/11/18 - 10:28오후
프로그래밍은 어느정도 해보았지만... 윈도우플밍
리눅스는 조금 다룰줄 아는정도였다가
리눅스에서 프로그래밍 하기시작한지 얼마안되어서 모르는게 많습니다.ㅠㅠ
도움좀 주세요ㅠㅠ
일단 c소스에서 처음으로 받는 인풋을 파일 리다이렉션으로 받고
그다음 사용자 인풋을 받으려 하는데 잘안되네요..
프로그램을 닫아야? 하는것 같은데..
예를 들어
$ ./test.c < input.in
임의의 파일에 보내고 싶은 입력값을 넣어두고 위와 같은식으로 실행시켰습니다.
파일내의 데이터를 모두 받고 나면
cout<<"Input : ";
cin>>input1;
이런식으로 사용자의 입력값을 받고 싶은데..
키보드입력을 기다려주지않고 프로그램은 끝이납니다.
물론 input1 에는 이상한값이 들어가구요ㅜㅜ
도와주세요~
Forums:
input.in을 받는 부분은 어떻게 되어있나요?
input.in을 받는 부분은 어떻게 되어있나요?
크기가 일치하지 않으면 cin>>input1; 부분까지 영향을 미칠 수 있습니다.
질문자입니다..
#include
using namespace std;
int main()
{
int input;
int userin;
while(!cin.eof())
{
cin>>input;
cout< }
cout<<"userinput ? ";
cin>>userin;
cout<
return 0;
}
간단하게 짜보면 이런식으로 하려는건데요.
이상한값이 들어간다기 보다
cin>>userin;
이 부분에서의 입력을 기다려주지 않네요..
파일로부터 리다이렉트해서 cin 에서 읽으셨지요. 그
파일로부터 리다이렉트해서 cin 에서 읽으셨지요.
그 스트림에서 eof 가 읽혔다고해서 (즉, 리다이렉트된 파일을 다 읽었다고 해서) 그 다음에 cin 이 키보드 입력에 붙는 것이 아닙니다.
cin은 이제 다 끝난 스트림이고 cin 가지고 더 이상 아무것도 할 수 없습니다.
글쓴이입니다
답변을 지금 보았는데
찾다보니 답해주신것처럼 더 입력을 못받는다는걸 알게 되었습니다.
리눅스에 무지하다보니...
여하튼 감사합니다^^
댓글 달기