簡體   English   中英

直到我在控制台中輸入內容,C ++程序(XCode)才會運行

[英]C++ program (XCode) not running until I enter something into console

我正在為一個班級寫一個基於文本的游戲,在此問題發生之前,我大部分游戲都在運行和運行。

我今天打開了它,並嘗試構建/運行它,它已成功構建並且似乎正在運行,但是一些第一行代碼是向控制台的輸出,直到我在控制台中輸入內容后它們才發生,直到出現提示后才需要:

這是我主要課程的開始:

int main() {
string name;
cout << fixed << setprecision(2) << "What's your name? ";
cin >> name;
cin.ignore(INT_MAX, '\n');...

這是輸出(在我輸入HELP並按Enter之前什么都沒有)

HELP?
What's your name? 

===========================================================
|                   Welcome,    HELP?!                    |
===========================================================    

而在今天之前,當我運行它時,它會輸出“您叫什么名字?”,這時我要鍵入我的名字,然后打印歡迎詞。

我覺得這一定是簡單的事情,因為它對我來說是如此黑與白:當我要問的第一件事是將某些內容輸出到控制台時,為什么還要等待任何輸入? 即使我首先發出cout語句,它也以這種方式工作。 這是XCode問題嗎?

注意:對於文件中的每個cin,也要像這樣對待輸入,直到我輸入內容后,問題和提示才會打印出來。

在C ++中寫入std::ostream時,必須先清空緩沖區,然后才能將任何內容實際打印到控制台。 您可以使用std::endlstd::flush做到這一點。

請參閱此處std::ostream參考。

例:

#include <iostream>
#include <string>

int main() {
    std::string s;
    std::cout << "Flushed with a line break." << std::endl;
    std::cin >> s;
    std::cout << "Flushed with no line break." << std::flush;
    std::cin >> s;

    return 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM