首页 > 解决方案 > 如何在 C++ 中打印多个输入和输出?

问题描述

我正在尝试解决一本竞争性编程书中的问题,其中输出仅在输入最后一个输入后出现。我似乎已经把逻辑搞定了,但我仍然对如何做输入/输出部分感到困惑。

这是代码:

#include <bits/stdc++.h>

int main()
{
    std::ios_base::sync_with_stdio(false);
    std::cin.tie(NULL);

    std::vector<int>soundex;
    std::string word;

    for(int i = 0; i < word.length(); i++)
    {
        if (word[i] == 'B'|| word[i] == 'F' || word[i] == 'P' || word[i] == 'V')
        {
            soundex.push_back(1);
        }

        if (word[i] == 'C' || word[i] == 'G' || word[i] == 'J' || word[i] == 'K' || word[i] == 'Q' || word[i] == 'S' || word[i] == 'X' || word[i] == 'Z')
        {
            soundex.push_back(2);
        }

        if (word[i] == 'D' || word[i] == 'T')
        {
            soundex.push_back(3);
        }

        if (word[i] == 'L')
        {
            soundex.push_back(4);
        }

        if (word[i] == 'M' || word[i] == 'N')
        {
            soundex.push_back(5);
        }

        if (word[i] == 'R')
        {
            soundex.push_back(6);
        }
    }

    for (int j = 0; j < soundex.size(); j++)
    {
        if (soundex[j] == soundex[j+1])
        {
            soundex.erase(soundex.begin() + 1);
        }
        std::cout << soundex[j];
    }
    std::cout << "\n";

    return 0;
}

它的行为如下:

输入:
KHAWN
输出:
25

输入:
PFISTER
输出:
1236

输入:
BOBBY
输出:
11

但是根据问题的说明,我需要它表现得像这样:

输入:

KHAWN 
PFISTER  
BOBBY

输出:

25  
1236  
11

标签: c++inputoutput

解决方案


用于while(cin >> word){ ... your code ... }读取直到 EOF(文件结束),以防每行仅包含一个单词(不允许空格)。您可以保持输出不变。


推荐阅读