【问题标题】:when CMD compiles doesn't execute what i want当 CMD 编译不执行我想要的
【发布时间】:2020-04-15 13:41:00
【问题描述】:

当我尝试编译我的 C++ 代码时,它会编译它,但是当我尝试回答 std::cin 时,它只会让我返回我之前写的东西,就像我写 std::string x; std::cout << "Hello World\n; std::cin >> x if(x == "Hello World") { std::cout << "Hello"; } 一样,但是当我编译它时它返回 @ 987654327@ 所以它只返回第一行here is the image of the problem,你可以看到编译器只复制第一个std::cout 并且不去,如果你想看看我的代码 在这里

#include <iostream>
#include <string>

int main()
{
    //workers
    std::string CapoUno = "Yuri";
    std::string CapoDue = "Fede";
    std::string Programmatore = "Simo";//C#, C++, Java
    std::string ModelMakerUno = "Edo";
    //groups
    std::string Capi[2] = { CapoUno, CapoDue };
    std::string Programmatori[2] = { CapoDue, Programmatore };
    std::string ModelMakers[1] = { ModelMakerUno };
    std::string active[3] = { CapoDue, Programmatore, ModelMakerUno };
    //actions
    std::string action;
    std::cout << "Controlla i capi\n";
    std::cout << "Controlla i programmatori\n";
    std::cout << "Controlla i Model Makers\n";
    std::cout << "Aggiungi vendite\n";
    std::cout << "Controlla saldo attuale\n";
    std::cout << "Rimuovi qualcuno dal gruppo di lavoro\n";
    std::cin >> action;
    //action making
    //Controlla i capi
    if (action == "Controlla i capi")
    {
        std::string decision;
        std::cout << "Vuoi cambiare i capi o solo controllare chi sono: per cambiare scrivi cambio, per controllare scrivi controllo\n";
        std::cin >> decision;
        if (decision == "controllo")
        {
            std::cout << "i capi sono" <<  " " << Capi << "\n";
        }
        else if (decision == "cambio")
        {
            std::string cambio;
            std::cout << "Inserisci il nome del nuovo capo, se vuoi eliminarne uno devi tornare indietro\n";
            std::cin >> cambio;
            std::cout << "Bene ora" << " " << cambio << "� un capo";
            std::string Capi[3] = { CapoUno, CapoDue, cambio };
        }
        else 
        {
            std::cout << "Invalid Input\n";
        }
    }
    else if (action == "Controlla i programmatori")
    {
        std::string change;
        std::cout << "Vuoi cambiare i capi o solo controllare chi sono: per cambiare scrivi cambio, per controllare scrivi controllo\n";
        std::cin >> change;
        if (change == "controllo")
        {
            std::cout << "questi sono i programmatori" << " " << Programmatori;
        }
        else if (change == "cambio")
        {
            std::string nuovo_programmatore;
            std::cout << "Inserisci il nome del nuovo programmatore, se vuoi eliminarne uno devi tornare indietro\n";
            std::cin >> nuovo_programmatore;
            std::cout << "Bene ora" << " " << nuovo_programmatore;
            std::string Programmatori[3] = { CapoDue, Programmatore, nuovo_programmatore };
        }
        else
        {
            std::cout << "Invalid Input\n";
        }
    }
    else if (action == "Controlla i Model Makers")
    {
        std::string scelta;
        std::cout << "Vuoi cambiare i capi o solo controllare chi sono: per cambiare scrivi cambio, per controllare scrivi controllo\n";
        std::cin >> scelta;
        if (scelta == "controllo")
        {
            std::cout << "Bene questi sono i programmatori" << " " << Programmatori;
        }
        else if(scelta =="cambio")
        {
            std::string nuovo_Model_Maker;
            std::cout << "Inserisci il nome del nuovo programmatore, se vuoi eliminarne uno devi tornare indietro\n";
            std::cin >> nuovo_Model_Maker;
            std::cout << "Bene ora" << " " << nuovo_Model_Maker << " " << "� un Model Maker";
            std::string Model_Makers[2] = { ModelMakerUno };
        }
    }
    else if (action == "Aggiungi vendite")
    {
        int vendite = 0;
        std::cout << "Aggiungi vendita";
        std::cin >> vendite;
    }
    else if (action == "Controlla saldo attuale")
    {
        int vendite = 0;
        int saldo =  vendite * 10;
        std::cout << "Questo � il nostro saldo" << " " << saldo;
        if (saldo == 0)
        {
            std::cout << "Oh no nessuno ha comprato nulla...";
        }
        else if (saldo >= 10)
        {
            std::cout << "Incredibile qualcuno c'ha comprato il gioco";
        }
    }
    else if (action == "Rimuovi qualcuno dal gruppo di lavoro")
    {
        std::string remove;
        std::cout << "Dimmi che { user } vuoi eliminare";
        std::cin >> remove;
        if (remove == CapoUno) 
        {
            std::string Capi[1] = { CapoDue };
            std::cout << remove <<  " " << "� stato eliminato";
        }
        else if (remove == CapoDue)
        {
            std::string Capi[1] = { CapoUno };
            std::cout << remove << " " << "� stato eliminato";
        }
        else if (remove == Programmatore)
        {
            std::string Programmatori[1] = { CapoDue };
            std::cout << remove << " " << "� stato eliminato";
        }
        else if (remove == ModelMakerUno)
        {
            std::string ModelMakers[1] = {  };
            std::cout << remove << " " << "� stato eliminato";
        }
    }

    return main();
}

意大利语而不是英语的东西是变量

【问题讨论】:

  • 听起来你应该只需要几行代码来演示你的问题。做一个minimal reproducible example,当你这样做时,通过用英语制作所有东西——变量和cmets,让人们尽可能容易理解。不要将程序的输出作为图片放在问题中。将程序的输出作为文本添加到问题中。

标签: c++ cmd compilation


【解决方案1】:

而不是使用 std::cin 使用 std::getline

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-14
    • 1970-01-01
    • 1970-01-01
    • 2020-10-11
    • 1970-01-01
    相关资源
    最近更新 更多