Dlaczego program nie zapisuje pierwszej litery ?

0

Dlaczego gdy z menu wybiore 1 to podczas wpisywnia teksu nie moge wprowadzić pierwszej litery (zapisuje dopiero od drugiej) ?


#include <iostream>
#include <fstream>
#include <string>
#include <conio.h>
using namespace std;


int main()
{
    int x;
fstream plik;
string napis;
  cout<<"1.Zapisywanie \n 2.Odczytywanie \n 3.Dopisanie \n" ;
cin>>x;
switch(x)
{

case 1:


do
{
    plik.open( "plik.txt",  std::ios::out );
getline(cin,napis);
plik<<napis;
    plik.close();

}
while(getch() !=27);
break;


case 2:


    plik.open( "plik.txt", std::ios::in);
    while(!plik.eof())
        {
            getline(plik, napis);
            cout << napis << endl;
        }


    plik.close();
    break;


case 3:

 plik.open( "plik.txt", std::ios::app | std::ios::out ) ;
cin.clear();
cin.sync();
getline(cin,napis);
plik<<napis;
    plik.close();
    break;
}


    return 0;
}


1

W pierwszym case zamień na:

while(getch() !=27)
{
    plik.open( "plik.txt",  std::ios::out );
getline(cin,napis);
plik<<napis;
    plik.close();

}

do...while zawsze wykonuje się choć raz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1