我真的很难得到这个。如果我的输入 为空,我的意思是“输入按钮”(意味着空字符串,空白),怎么能我使用 C ++ 检测到它?
#include <iostream>
#include <stack>
#include <map>
#include <string>
using namespace std;
int main()
{
string a;
cin>>a;
if(a.empty())
cout<<"I";
else
cout<<"V";
return 0;
}
如果是空字符串,我该如何打印“我”?它是如何工作的? 提前谢谢。
答案 0 :(得分:4)
如果我理解正确的话:
如果您想检查,如果提供的字符串为空,请使用getline()
功能。它检查字符串是否为空,空或空格。
如果您想接受空输入,只需使用std::string inputValue;
std::getline (std::cin,name);
cout << name;
功能。
getline()
默认情况下,功能if (getIntent().getExtras() != null) {
for (String key : getIntent().getExtras().keySet()) {
String value = getIntent().getExtras().getString(key);
Log.d(TAG, "Key: " + key + " Value: " + value);
}
}
接受空输入。
答案 1 :(得分:1)
答案 2 :(得分:1)
格式化的输入函数,即operator>>()
,通常从跳过空格开始。 std::string
的输入运算符肯定会这样做。这可能不是你想要的。
您可以使用操纵器std::noskipws
禁用此行为,例如,使用
if (std::cin >> std::noskipws >> a) {
std::cout << (a.empty()? "a is empty": "a is non-empty") << '\n';
}
但是,空格将留在流中。你可能想要ignore()
它。从它的声音来看,你真的想要阅读一行输入并做一些特殊的事情,如果它只包含空格:
if (std::getline(std::cin, a)) {
std::cout << (std::any_of(a.begin(), a.end(),
[](unsigned char c){ return !std::isspace(c); })
? "a contains non-space characters"
: "a contains only spaces") << '\n';
}