2013-04-21 3 views
0

콘솔에서 숫자를 읽은 다음 파일에서 임의의 숫자를 읽는 프로그램을 작성하려고합니다. 그러면 콘솔 번호가 파일에서 읽은 목록에 몇 번 나타나는지 출력해야합니다. 두 번째 부분을 수행하는 방법을 잘 모르겠으므로 숫자가 나타나는 횟수를 계산하는 방법을 알려줄 수 있습니다. 지금까지 가지고있는 유일한 코드는 첫 번째 부분입니다. 두 번째 부분에 대한파일의 숫자를 콘솔 입력과 비교하기

내 생각은 다음과 같이이었다 :

while(!inputfile.eof){ 
    if(inputfilenumber == consolenumber){ 
     counter = counter + 1; 
    } 

을하지만 난 그것이 어떻게 작동하는지 잘 모르겠습니다으로 실제로 적용 할 수없는 것.

+0

는'상태 또는 위치 inputfile's, 그 일이 곧 끝날 것으로 기대하지 않습니다. 둘째,'istream :: eof()'는 거의 모든 경우에 사용하지 마십시오. 일반적인 규칙에는 예외가 아닙니다. 그것은 당신이 생각하는 것처럼 행동하지 않습니다. 'while (inputfile >> inputfilenumber) {if (...)}'를 사용하십시오. – WhozCraig

답변

0

샘플 코드는 참조 용으로 사용할 수 있습니다. 아무것도에 대한 그 루프에서 변경되지 않기 때문에

int input; 
int count = 0; 
cin>>input; 
ifstream myReadFile; 
myReadFile.open("text.txt"); 
char output[100]; 
if (myReadFile.is_open()) 
{ 
    while (!myReadFile.eof()) 
    {   
    myReadFile >> output; 
    int val = atoi(output); 
    if(val == input) 
     { 
      cout<<"found input"<<input; 
      count++; 
     } 

    } 
} 
cout<<"count ="<<count; 
myReadFile.close(); 
관련 문제