C ++ 프로그램이 벡터로 아무것도 인쇄하지 않습니까?

Nov 15 2020

프로그램을 컴파일하고 실행했지만 문제를 좁히려 고 할 때 아무 일도 일어나지 않았습니다. 벡터를 정의 할 때마다 출력에 아무것도 전송되지 않는 것으로 나타났습니다. 이 프로그램에서는 std:cout처음 에도 아무것도 인쇄 되지 않으며이 문제를 해결하는 방법을 이해하지 못합니다. 하지만 간단한 "hello world"는 작동합니다. 또한 저는 Windows 10에 있으며 VSCode를 사용합니다.

    #include <iostream>
    #include <vector>


    int main( void )
    {
        std::cout << "hello\n";
        std::vector<int> g1; 
    
        for (int i = 1; i <= 5; i++) 
            g1.push_back(i); 
    
        std::cout << "Output of begin and end: "; 
        for (auto i = g1.begin(); i != g1.end(); ++i) 
            std::cout << *i << " "; 
    
        std::cout << "\nOutput of cbegin and cend: "; 
        for (auto i = g1.cbegin(); i != g1.cend(); ++i) 
            std::cout << *i << " "; 
    
        std::cout << "\nOutput of rbegin and rend: "; 
        for (auto ir = g1.rbegin(); ir != g1.rend(); ++ir) 
            std::cout << *ir << " "; 
    
        std::cout << "\nOutput of crbegin and crend : "; 
        for (auto ir = g1.crbegin(); ir != g1.crend(); ++ir) 
            std::cout << *ir << " "; 
    
        return 0; 
    } 

터미널 (Windows Powershell)에서이 명령을 작성합니다.

g++ test.cpp -o test
.\test

답변 해주셔서 감사합니다

답변

2 Sambalika Nov 15 2020 at 20:29

해리가 조언 한 것과 같은 생각으로. cout 후에 체계적으로 플러싱을 시도하십시오 (그렇게하지 않으면 예상 할 때 인쇄물이 보장되지 않을 수 있습니다). 사용 << std::endl하면 라인이 종료되고 ostream이 플러시됩니다 (각 cout 후에 권장 됨). 그리고 라인을 끝내고 싶지 않다면 간단히<< std::flush

LuckyloneOfficial Nov 15 2020 at 21:03

답을 찾았습니다 : dll 파일 libstdc++-6.dll을 .exe dir에 넣고 내 문제를 해결 해야한다는 것이 밝혀졌습니다.