gpt4 book ai didi

c++ - 如何在用户只需按 C++ 中的输入时获取输出

转载 作者:行者123 更新时间:2023-11-30 05:38:24 24 4
gpt4 key购买 nike

我正在尝试构建一个简单的代码,在您输入一些方向后给出二维坐标。问题是我不知道如何在用户按下回车键时给出正确的输出。这应该是 (0,0),因为如果用户只是按下回车,这意味着他没有改变坐标。我如何知道用户是否刚刚按下回车键并相应地给出正确的输出?

这是我完成的代码:

#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;
}

最佳答案

操作 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;

关于c++ - 如何在用户只需按 C++ 中的输入时获取输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32802088/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com