std::cin-Zeile lesen



  • Hi,

    mann ist mir das peinlich, aber ich fürchte, ich bin inzwischen unfähig, mit std::cin umzugehen. 😞

    Ich habe einen Thread, der meine Konsole ansteuert:

    void Console::run(void)
    {
    	std::cout << "Console thread is online." << std::endl;
    
    	// Endless loop until this thread should stop working
    	while (!m_bShouldExit)
    	{
    		doTick();
    		sleep(250);
    	}
    
    	// One last tick
    	doTick();
    
    	std::cout << "Console thread is offline." << std::endl;
    }
    
    void Console::doTick(void)
    {
    	// Lock our mutex
    	ScopedMutexLock lock(m_mutex);
    
    #ifdef GB_WINDOWS
    	if (kbhit())
    #else
    #error kbhit() only supported by Windows!
    #endif
    	{
    		// Let the user input a line
    		std::cout << " >> " << std::flush;
    		std::cin >> m_sInput;
    	}
    
    	// Display output queue
    	while (!m_outQueue.empty())
    	{
    		std::cout << m_outQueue.front() << std::endl;
    		m_outQueue.pop();
    	}
    }
    

    Funktioniert auch alles einwandfrei, aber wenn ich z.B. "test1 test2" eingebe, lese ich nur das test1 (wie es ja auch meistens bei Eingabe gewünscht ist um mehrere Variablen aus einer Zeile mit Space als Seperator zu lesen).

    Nur wie kann ich eine ganze Zeile lesen?

    ChrisM (ist das peinlich 😞 )



  • getline(cin, m_sInput);
    


  • Hi,

    danke, funktioniert! 🙂

    ChrisM



  • Da gibts ne Funktion getline(cin, pufferstring);, wei aber net aus welchem Header 🙄

    mfg
    Glamdring



  • zu spät :xmas1:



  • Glamdrink schrieb:

    Da gibts ne Funktion getline(cin, pufferstring);, wei aber net aus welchem Header

    <string>


Anmelden zum Antworten