2016-10-18 3 views
-2

그래서 저는 C++을 처음 접했고 프로그램에 문제가 있습니다. 파일을 검색 한 다음 26 개의 대문자 (A, B, C ...)와 소문자 (a, b, c, d ...)의 첫 번째 항목을 찾으려고합니다. 저는 코드로 작업하여 파일을 가져 와서 벡터로 만든 다음 벡터를 통해 각 문자의 첫 번째 인스턴스를 찾는 것이 가장 쉽다는 것을 알아 냈습니다. 다음은 내 코드 예제입니다.텍스트 파일에서 문자 찾기

int main() 
{ 
    int i; 
    string file = input; // User inputted file 
    vector<string> v; 
    ifstream ist{ file }; 
    if (!ist) 
     error("Can not open inputed file ", file); 
    while (!ist.eof()) 
    { 
     string x; 
     ist >> x; 
     v.push_back(x); // Creates a string vector that is filled with everything 
     // in the file 
    } 
    // Find A in text. 
    vector<int> location; 
    location = find(v.begin(), v.end(), 'A'); 
    if (location != v.end()) 
     cout << "Found A at location " << location; 
    else 
cout << "A was not found" 

성공적으로 벡터 v를 검색 할 수 있었고 파일 내부에있는 내용으로 채워졌습니다. 문제의 영역은 문자열 벡터에서 문자의 위치를 ​​얻는 것이 가능한 방법입니다. 나는 여전히 문제가있는 모든 문제에 접근 할 수 있도록 C++이 필요하다. 네가 나를 도울 수 있다면 정말 좋을거야. 감사.

+1

게시하시기 바랍니다 전체 코드 – amanuel2

+2

오른쪽 이러한 문제를 해결하기위한 도구 디버거입니다 읽을. 스택 오버플로를 묻기 전에 코드를 단계별로 실행해야합니다. 자세한 도움말은 [작은 프로그램 디버깅 방법 (Eric Lippert 작성)] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)을 참조하십시오. 문제를 재현하는 [최소, 완료 및 확인 가능] (http://stackoverflow.com/help/mcve) 예제와 함께 해당 질문을 \ [편집]해야합니다. 디버거. –

+1

@ πάνταῥεῖ : 올바른 도구는 좋은 입문서 [book] (http://stackoverflow.com/q/388242/1889329)입니다. '벡터 '을 * "문자 시퀀스"*라고 쓰려면 실제로 기본적인 것을 직접 얻어야합니다. 디버거는이 시점에서 도움을주지 않을 것입니다. – IInspectable

답변

0

벡터 v에는 문자를 검색하는 동안 파일의 모든 문자열이 들어 있습니다.

메이크업의 V vector<char>과 하나 개의 문자

관련 문제