내 코드가 텍스트 파일을 덮어 쓰지 않습니까?

한나

우리는 C ++ 클래스에서 매우 유사한 유형의 코드를 수행했지만 한 줄 단위 (거의) 동일하더라도 내 버전이 제대로 작동하지 않습니다.

내 코드는 사용자의 포켓몬을 저장하기위한 것이며 원하는대로 추가 및 삭제할 수 있습니다. 내 표시 기능은 작동하지만 추가 및 삭제 기능은 작동하지 않습니다. 모든 파일이 열리고 있지만 예상대로 파일을 덮어 쓰지 않습니다. 무엇을 해야할지 정말 잘 모르겠습니다. 저는 초보자이고 잘 모릅니다.

지금까지 내가 얻은 것은 다음과 같습니다.

string name[100];
string type[100];
int level[100];
string newPokemon;
string newType;
int newLevel;
ifstream fin;
ofstream fout;
int numberOfPokemon = 0;
//Input Pokemon Info
cout << "Name of Pokemon: ";
getline(cin, newPokemon);
cin.ignore(100, '\n');
cout << "Pokemon type: ";
getline(cin, newType);
cin.ignore(100, '\n');
cout << "Pokemon level: "; //weird gap between "Pokemon type" and "pokemon level". I have to press enter twice from "pokemon type" to get to "pokemon level"
cin >> newLevel;
cin.ignore(5, '\n');
fin.open("pokemon.txt");
//Put file in array
if (fin.is_open())
{
    while (isalnum(fin.peek()) && numberOfPokemon < 100)
    {
        getline(fin, name[numberOfPokemon]);
        getline(fin, type[numberOfPokemon]);
        fin >> level[numberOfPokemon];
        fin.ignore(100, '\n');
        if (name[numberOfPokemon] != newPokemon)
            numberOfPokemon++;
    }
    fin.close();
}
//Output file
fout.open("pokemon.txt");
if (fout.is_open())
{
    for (int i = 0; i < numberOfPokemon; i++)
    {
        fout << name[i] << "\n";
        fout << type[i] << "\n";
        fout << level[i] << "\n";

    }
    //Tack on new piece
    fout << newPokemon << "\n";
    fout << newType << "\n";
    fout << newLevel << "\n";
    fout.close();
    cout << "Add Successful\n";
}
else
{
    cout << "Add Failure\n";
}

이제 내 삭제 기능 :

string name[100];
string type[100];
int level[100];
int pokemonCount = 0;
string deletedPokemon = "";
bool found = false;

ifstream fin;

cout << "Which Pokemon would you like to delete?" << endl;
getline(cin, deletedPokemon);
cin.ignore(5, '\n');

fin.open("pokemon.txt");
if (fin.is_open())
{
    while (isalnum(fin.peek()))
    {
        getline(fin, name[pokemonCount]);
        getline(fin, type[pokemonCount]);
        fin >> level[pokemonCount];
        fin.clear();
        fin.ignore(100, '\n');
        if (deletedPokemon == name[pokemonCount])
        {
            pokemonCount--;
            found = true;
        }
        pokemonCount++;
    }
    fin.close();
    cout << "ya the file opened" << endl; //always appears
}

ofstream fout;
fout.open("pokemon.txt");
if (fout.is_open())
{
    for (int i = 0; i < pokemonCount; i++)
    {
        fout << name[i] << "\n";
        fout << type[i] << "\n";
        fout << level[i] << endl;
    }
    fout.close();
    cout << "pokemon removed\n";
    cout << "the file opened."; //it is returning that the file opened in both occasions in this function but nothing is happening!
}
else
{
   cout << "removal failure";
   cout << "The file didn't open";
}
return found;

이 기능이 끝나면 (삭제하기로 선택한 경우) "포켓몬을 추가 하시겠습니까?"라는 메시지가 표시됩니다. 그러나 그것은 내가 대답을 입력하도록 허용하지 않고 프로그램을 종료합니다.

프라 단

의 기본 동작은 ofstream::open읽기 및 쓰기를 위해 파일을 여는 것입니다. 파일을 덮어 쓰려면에 대한 호출에서 파일을 지정해야합니다 open.

fout.open("pokemon.txt", ios_base::in|ios_base::out|ios_base::trunc);

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

덮어 쓰지 않고 텍스트 파일을 추가합니다.

분류에서Dev

파일을 덮어 쓰지 않고 추가 하시겠습니까?

분류에서Dev

노드의 fs.writeFile이 이전 내용을 덮어 쓰지 않습니다.

분류에서Dev

Ansible : 파일을 덮어 쓰지 않고 .ssh / config에 스탠자 추가

분류에서Dev

XML 파일을 덮어 쓰고 내 네임 스페이스 중 하나가 누락되었습니다.

분류에서Dev

이전 텍스트를 덮어 쓰지 않고 여러 줄 문자열을 텍스트 파일에 저장

분류에서Dev

cloud-init가 AWS (CentOS)에서 내 호스트 이름을 덮어 쓰지 않도록하려면 어떻게해야합니까?

분류에서Dev

내가 파일을 연 후 누군가가 파일을 덮어 쓰면 어떻게됩니까?

분류에서Dev

내 텍스트 파일이 계속해서 데이터를 덮어 쓰는 이유는 무엇입니까?

분류에서Dev

Windows Phone8의 기존 파일 내용을 덮어 쓰지 않고 데이터를 skydrive에 업로드

분류에서Dev

Proguard가 매니페스트 파일을 덮어 쓰는 것을 방지하는 방법

분류에서Dev

참조를 끊지 않고 텍스트 파일을 가져오고 워크 시트를 덮어 쓰는 Excel 매크로

분류에서Dev

파이썬 덮어 쓰기 및 텍스트 파일에 추가

분류에서Dev

파일을 덮어 쓰면 0 바이트가됩니다.

분류에서Dev

Rsync가 파일을 덮어 쓰지 않음

분류에서Dev

rsync가 최신 파일을 덮어 쓰지 않음

분류에서Dev

rsync가 최신 파일을 덮어 쓰지 않음

분류에서Dev

기본 스타일을 덮어 쓰지 않고 MahApp 컨트롤에 ErrorTemplate 추가

분류에서Dev

현재 내용을 덮어 쓰지 않고 파일에 쓰는 방법은 무엇입니까?

분류에서Dev

이름 바꾸기 스크립트가 파일 이름을 앞에 붙이지 않고 덮어 쓰는 경우

분류에서Dev

내 커서 앞에서 코드를 덮어 쓰지 않도록 PyCharm의 자동 완성을 중지합니다.

분류에서Dev

덮어 쓰지 않고 동일한 파일을 Azure Blob Storage에 업로드 하시겠습니까?

분류에서Dev

"내보내기"가 기존 값을 덮어 쓰지 않는 이유는 무엇입니까?

분류에서Dev

노드가 보이지 않을 때 내 텍스트를 어떻게 표시 할 수 있습니까?

분류에서Dev

텍스트 파일을 덮어 쓰는 대신 FileUtils를 추가하는 방법

분류에서Dev

내 코드가 텍스트 파일에 기록되지 않는 이유는 무엇입니까?

분류에서Dev

txt 파일을 각각의 새 스트림으로 덮어 쓰는 대신 데이터를 결합하는 코드를 어떻게 얻을 수 있습니까?

분류에서Dev

vi / vim에서 내려가는 텍스트 행을 어떻게 덮어 쓰나요?

분류에서Dev

Visual Studio 설치 관리자 프로젝트가 출력 .EXE 파일을 덮어 쓰지 않음

Related 관련 기사

  1. 1

    덮어 쓰지 않고 텍스트 파일을 추가합니다.

  2. 2

    파일을 덮어 쓰지 않고 추가 하시겠습니까?

  3. 3

    노드의 fs.writeFile이 이전 내용을 덮어 쓰지 않습니다.

  4. 4

    Ansible : 파일을 덮어 쓰지 않고 .ssh / config에 스탠자 추가

  5. 5

    XML 파일을 덮어 쓰고 내 네임 스페이스 중 하나가 누락되었습니다.

  6. 6

    이전 텍스트를 덮어 쓰지 않고 여러 줄 문자열을 텍스트 파일에 저장

  7. 7

    cloud-init가 AWS (CentOS)에서 내 호스트 이름을 덮어 쓰지 않도록하려면 어떻게해야합니까?

  8. 8

    내가 파일을 연 후 누군가가 파일을 덮어 쓰면 어떻게됩니까?

  9. 9

    내 텍스트 파일이 계속해서 데이터를 덮어 쓰는 이유는 무엇입니까?

  10. 10

    Windows Phone8의 기존 파일 내용을 덮어 쓰지 않고 데이터를 skydrive에 업로드

  11. 11

    Proguard가 매니페스트 파일을 덮어 쓰는 것을 방지하는 방법

  12. 12

    참조를 끊지 않고 텍스트 파일을 가져오고 워크 시트를 덮어 쓰는 Excel 매크로

  13. 13

    파이썬 덮어 쓰기 및 텍스트 파일에 추가

  14. 14

    파일을 덮어 쓰면 0 바이트가됩니다.

  15. 15

    Rsync가 파일을 덮어 쓰지 않음

  16. 16

    rsync가 최신 파일을 덮어 쓰지 않음

  17. 17

    rsync가 최신 파일을 덮어 쓰지 않음

  18. 18

    기본 스타일을 덮어 쓰지 않고 MahApp 컨트롤에 ErrorTemplate 추가

  19. 19

    현재 내용을 덮어 쓰지 않고 파일에 쓰는 방법은 무엇입니까?

  20. 20

    이름 바꾸기 스크립트가 파일 이름을 앞에 붙이지 않고 덮어 쓰는 경우

  21. 21

    내 커서 앞에서 코드를 덮어 쓰지 않도록 PyCharm의 자동 완성을 중지합니다.

  22. 22

    덮어 쓰지 않고 동일한 파일을 Azure Blob Storage에 업로드 하시겠습니까?

  23. 23

    "내보내기"가 기존 값을 덮어 쓰지 않는 이유는 무엇입니까?

  24. 24

    노드가 보이지 않을 때 내 텍스트를 어떻게 표시 할 수 있습니까?

  25. 25

    텍스트 파일을 덮어 쓰는 대신 FileUtils를 추가하는 방법

  26. 26

    내 코드가 텍스트 파일에 기록되지 않는 이유는 무엇입니까?

  27. 27

    txt 파일을 각각의 새 스트림으로 덮어 쓰는 대신 데이터를 결합하는 코드를 어떻게 얻을 수 있습니까?

  28. 28

    vi / vim에서 내려가는 텍스트 행을 어떻게 덮어 쓰나요?

  29. 29

    Visual Studio 설치 관리자 프로젝트가 출력 .EXE 파일을 덮어 쓰지 않음

뜨겁다태그

보관