Visual Studio nie wyświetla w konsoli po kompilacji i uruchomieniu prog.

0

Witam.
Napotkałem problem iż gdy wklepie program poniżej, to nie pojawią się żadne dane w konsoli.
Natomiast jak uruchomię exe bezpośrednio w cmd to działa wszytko poprawnie. Proszę o pomoc

#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>

using namespace std;
void mp(string val)
{
    cout << val << "\n";
}

int main(int argc, char * argv[])
{
    string pomoc;

    std::fstream plik;
    plik.open("ta.pgm", std::ios::in | std::ios::out);

    if (plik.bad() == true)
    {
        std::cout << "plik bad\n";
    }
    if (plik.good() == true)
    {
        std::cout << "plik good\n";
    }
    if (plik.is_open() == true)
    {
        std::cout << "plik is_open\n";
    }
    getline(plik, pomoc);
    mp(pomoc);
    plik >> pomoc;
    mp(pomoc);
    plik >> pomoc;
    mp(pomoc);
    plik >> pomoc;
    mp(pomoc);
    plik >> pomoc;
    mp(pomoc);
    plik.clear();
    plik.close();

    system("pause");
    return 0;
}
0

Nie napisałeś konkretnie, co jest, czego się spodziewasz, czego Ci brakuje...

0

fstream.good() sprawdza więcej flag niż fstream.bad() dlatego oba mogą jednocześnie być false.
Zobacz jeszcze fstream.fail().

    std::fstream plik;
    plik.exceptions(std::fstream::failbit | std::fstream::badbit);
    try {
        plik.open("ta.pgm", std::ios::in | std::ios::out);
    }
    catch (std::fstream::failure& e) {
        char errmsg[94];
        strerror_s(errmsg, 94, errno);
        std::cerr << e.what() << " (" << errmsg << ")" << std::endl;
    }

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