用户在C ++中按Enter时如何获取输出

jonathan9879

我正在尝试构建一个简单的代码,在您输入了一些方向输入后,该代码可以在二维中给出坐标。问题是我不知道当用户按下Enter键时如何给出正确的输出。这应该是(0,0),因为如果用户只是按下Enter键,则表示他尚未更改坐标。我如何知道用户是否刚刚按Enter键并相应地提供适当的输出?

这是我完成的代码:

#include <iostream>
using namespace std;

int main ()
{
    int a = 0, b = 0;
    string direction;

if( cin >> direction) {
    if( !direction.empty() ) {
        // handle input correctly
        // Interpret directions
        for (int i = 0; i < direction.length(); i++) {
            if (direction[i] == 'e') a++;
            else if (direction[i] == 's') b++;
            else if (direction[i] == 'w') a--;
            else if (direction[i] == 'n') b--;
        }
    }
    else if (direction.empty()) cout << "(0,0)" << endl;
}

// Output coordinates
cout << "(" << a << "," << b << ")" << endl;
}
奥雷斯特·赫拉(Orest Hera)

该操作将cin >> direction;忽略空格以及空行。这里的字符串direction不是以空格结尾的空单词。

可以使用读取整行std::getline此函数从流中读取行,并且还读取空行。

因此,解决方案:

int a = 0, b = 0;
string direction;

getline(cin, direction);

if(!direction.empty()) {
    // Interpret directions
    for (int i = 0; i < direction.length(); i++) {
        if (direction[i] == 'e') a++;
        else if (direction[i] == 's') b++;
        else if (direction[i] == 'w') a--;
        else if (direction[i] == 'n') b--;
    }
}
// else is not needed, since here a = 0 and b = 0.

// Output coordinates
cout << "(" << a << "," << b << ")" << endl;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

按下Enter键时停止获取用户输入(C语言)

用户在文本框中按下Enter键时如何启动动画

当用户按下“ Enter”或“ Return”时,如何在文本字段中插入<p>标记?

如果用户按下 Enter wxWidgets,如何获取

如何在 C 中继续从用户那里获取值,但在用户未输入任何值并按 Enter 时停止?

我的问题=直到用户按下“ enter”从c ++中的用户输入中取平均值

当用户在带有 AccptsReturn="True" 的 WPF 文本框中按 ENTER 键时如何避免换行

当用户按下硬键时,Android如何从选项卡式片段中获取数据?

当用户在C ++中按下“输入”时,如何读取带空格的序列并停止?

用户在c中输入

使用C#按Enter时如何添加事件?

像 Emacs 和 Nano 这样的程序如何在终端中运行时获取用户输入,而无需用户按 Enter 键?

如何输出多个用户创建的类C ++

用户定义的行,列在C ++中的输出

如何防止用户按下ENTER键?

如何检查用户是否按Enter键?

如何从用户获取输入整数,直到他使用 eof 按 Enter 键?

使用户每次在 C 中按 Enter 键一次

在多行中获取 C 中的用户命令

在一行中获取多个输入,直到用户按Enter

如何将数据从用户输入到2D数组中,并输出到用户C ++

使用ExecuteScalar()执行SP时如何在c#中获取输出参数的值

在C ++中按ENTER后如何继续执行该程序?

每次在C中输入后如何自动按“ ENTER”键?

如何摆脱与C中的第二按Enter?

当用户按 Enter 时如何在终端上打印时间戳

当用户按 Enter 时,Scheme 中的 Scheme REPL 不呈现提示

用户在输入=文本中按下Enter时的jQuery函数commit(),也以相同的形式提交输入=提交

我如何从此输出中获取用户价值