按Enter后在输入旁边打印输出

时间:2019-10-02 07:09:29

标签: c++ formatting

我正在尝试制作一个显示输入单词的单词长度的程序。

这是它的样子:

<key>NSUbiquitousContainers</key>
<dict>
    <key>iCloud.com.example.app</key>
    <dict>
        <key>NSUbiquitousContainerIsDocumentScopePublic</key>
        <true/>
        <key>NSUbiquitousContainerName</key>
        <string>iCloudDemoApp</string>
        <key>NSUbiquitousContainerSupportedFolderLevels</key>
        <string>Any</string>
    </dict>
</dict>

基本上,一旦用户输入了单词,按回车键后,音节的数量就会随之增加。不幸的是,当您按Enter键时,cin代码实际上考虑了回车键,因此长度输出不再位于同一行,而是换行了。

我正试图找到一种方法来删除cin制造的新行或忽略它,至少这样我可以实现所需的输出。

谢谢!

Word   Length
Come      4
Again     5
Hair      4
The       3

实际输出:

string words[4];
int wlength[4];
cout <<"word        length" <<endl;
cout << endl;
cout << "";
cin >> words[0];
wlength[0] = words[0].length();
cout << wlength[0] <<endl;
cout << "";
cin >> words[1];
wlength[1] = words[1].length();
cout << wlength[1] << endl;
cout << "";
cin >> words[2];
wlength[2] = words[2].length();
cout << wlength[2] << endl;
cout << "";
cin >> words[3];
wlength[3] = words[3].length();
cout << wlength[3] << endl;

1 个答案:

答案 0 :(得分:0)

这将满足您的要求,尽管您不能轻松地返回一行,但是您可以清除整个控制台并再次打印所有内容。我的实现也可以使用4个以上的单词。

#include <iostream>
#include <string>
#include <vector>
int main()
{
    std::vector<std::string> words;
    for (;;)
    {
        std::cout << "Word\t\tLength\n";
        for (auto& word : words)
            std::cout << word << "\t\t" << word.length() << "\n";

        std::string newWord;
        std::cin >> newWord;
        words.push_back(newWord);
        system("cls");
    }

    std::getchar();
    return 0;
}