2016-11-29 3 views
0

1000 개의 숫자 또는 이와 유사한 텍스트 파일을로드하려고하는데 범위 내에 있으면 모든 숫자를 확인하고 싶습니다. 나는 벡터를 사용하려고하지만 나는 똑바로 얻을 수 없습니다.텍스트 파일의 숫자를 읽고 범위 내에 있는지 확인하십시오.

기본적으로 나는 첫 번째 숫자가 더 커지는지 확인하고 싶습니다.

추신 : 내가 프로그래밍의 어떤 유형이며 매우 새로운 오전, 그래서 PLZ 평균 될 그나마 :

여기

내 코드입니다 : 당신이 모든 숫자를 읽을 때까지 나는 루프를 제안

using namespace std; 

int main() { 
    ifstream myfile; 
    myfile.open ("A1.txt"); 

    vector<int>array; 
    int count; 
    double tmp; 
    int i; 

    myfile >> tmp; 
    while (int i = 0; i < count; i++){ 
     myfile >> tmp; 
     array.push_back(tmp); 
     cout << count; 
    } 

    myfile.close(); 
    return 0; 
} 
+1

'카운트'를 초기화하지 마십시오. –

+2

은 의미가 없으려고 노력하지만 그 코드에 어떤 문제가 있는지 알려줄 필요가 있습니다. 그것은 컴파일합니까? 그것은 추락합니까? 그것은 약간의 산출물을 생산합니까? 그렇다면 출력이 당신이 기대하는 것과 어떤면에서 다른가요? 마지막으로 질문을하는 것이 좋습니다. – user463035818

+1

모르는'count'까지 루핑하는 대신, 파일의 끝에 도달 할 때까지 반복하십시오. – stark

답변

1

:

... 
double previous, tmp; 
myfile >> previous; 
array.push_back(previous);//this inserts the first element 
//but you have to decide if you need it or not, because it is not compared with any value 
while (myfile >> tmp){ 
    array.push_back(tmp); 
    if(previous >= tmp){ 
     //Do something; 
    } 
    previous = tmp;//the next previous is the current tmp 
} 
... 
+0

'previous'는 결코 벡터에서 끝나지 않습니까? 그리고 우리는 '이전'을 읽은 후에 그 물줄기가 여전히 좋은지 확인해야합니까? 그렇지 않으면 꽤 좋은 해결책입니다. OP는 약간 다른 입력 형식을 가지고 있지만 (첫 번째 줄은 뒤 따르는 배열의 크기 임) 코드가 조정될 수 있습니다. – AndyG

+0

@AndyG'previous'는 이전 값을 현재 값과 비교하는 데 사용됩니다. 작성자가'push_back '내부에서 수행하고자하는 작업은'if' 내부에서 발생할 수 있습니다. 스트림이 여전히 양호한 지 확인하는 일은 쉬운 부분이며 작성자는이를 수행 할 수 있어야합니다. –

+0

@ M.M 이렇게해야합니다 : array.push_back (이전); while 루프에 들어가기 전에 –

관련 문제