EOF(End Of FIle)까지 입력을 받는 방법은 파일과 콘솔에서 서로 다르다.
먼저, 파일에서는 아래와 같은 방법을 사용한다.
ifstream in("input.txt");
while(in>>i);
위 순환문에서는 더이상 파일에서 입력받을 데이터가 존재하지 않을때 False가 반환되며 순환문을 빠져나오게 된다.
다음으로, 콘솔창에서는
while(cin>>j[i]);
실행시 콘솔창에서 ctrl+z를 입력해준후 enter를 눌러야 프로그램이 그부분을 EOF로 인식하여 순환문을 빠져나오게 된다.
아래의 예제는 input.txt로부터 대이터를 받고 또 콘솔창에서 데이터를 받아 모두 콘솔창에 출력하는 코드이다.
#include <iostream>
#include <fstream>
#include <windows.h>
using namespace std;
int main(){
int i,j[100],k;
ifstream in("input.txt");
cout<<"input.txt로부터 받은 데아터"<<endl;
while(in>>i)cout<<i<<" ";
cout<<endl<<"EOF까지 데이터 입력하기"<<endl;
i=0;
while(cin>>j[i]){
i++;
}
cout<<"콘솔에서 입력받은 데이터"<<endl;
for(k=0;k<i;k++)cout<<j[k]<<" ";
system("PAUSE");
return 0;
}
다음은 실행 결과다
input.txt로부터 받은 데아터//input.txt: 1 3 5 7 9 11 13 15 17
1 3 5 7 9 11 13 15 17
EOF까지 데이터 입력하기
1
3
4
2
5
1
3
2
3
^Z //ctrl+z를 누르면 콘솔창에 이런 문자가 뜬다 이상태에서 enter를 누르자.
콘솔에서 입력받은 데이터
1 3 4 2 5 1 3 2 3 Press any key to continue . . .
중간에 빈줄은 공백이므로 아무런 데이터도 읽지 않기에 상관이 없다. 이건 스페이스를 눌렀을 때도 마찬가지다.
먼저, 파일에서는 아래와 같은 방법을 사용한다.
ifstream in("input.txt");
while(in>>i);
위 순환문에서는 더이상 파일에서 입력받을 데이터가 존재하지 않을때 False가 반환되며 순환문을 빠져나오게 된다.
다음으로, 콘솔창에서는
while(cin>>j[i]);
실행시 콘솔창에서 ctrl+z를 입력해준후 enter를 눌러야 프로그램이 그부분을 EOF로 인식하여 순환문을 빠져나오게 된다.
아래의 예제는 input.txt로부터 대이터를 받고 또 콘솔창에서 데이터를 받아 모두 콘솔창에 출력하는 코드이다.
#include <iostream>
#include <fstream>
#include <windows.h>
using namespace std;
int main(){
int i,j[100],k;
ifstream in("input.txt");
cout<<"input.txt로부터 받은 데아터"<<endl;
while(in>>i)cout<<i<<" ";
cout<<endl<<"EOF까지 데이터 입력하기"<<endl;
i=0;
while(cin>>j[i]){
i++;
}
cout<<"콘솔에서 입력받은 데이터"<<endl;
for(k=0;k<i;k++)cout<<j[k]<<" ";
system("PAUSE");
return 0;
}
다음은 실행 결과다
input.txt로부터 받은 데아터//input.txt: 1 3 5 7 9 11 13 15 17
1 3 5 7 9 11 13 15 17
EOF까지 데이터 입력하기
1
3
4
2
5
1
3
2
3
^Z //ctrl+z를 누르면 콘솔창에 이런 문자가 뜬다 이상태에서 enter를 누르자.
콘솔에서 입력받은 데이터
1 3 4 2 5 1 3 2 3 Press any key to continue . . .
중간에 빈줄은 공백이므로 아무런 데이터도 읽지 않기에 상관이 없다. 이건 스페이스를 눌렀을 때도 마찬가지다.
댓글
댓글 쓰기