我的程序应该接受一些输入,例如“ Hi there”。或“我有一个”。 (请注意结束点),如果字符串包含“ a”,则输出“ yes”,否则,则输出“ no”。 问题是cin跳过空格,而noskipws似乎不起作用。
我得到的代码:
#include <iostream>
#include <string>
using namespace std;
int main() {
string sequence;
cin >> noskipws >> sequence;
for (auto c : sequence) {
if (c == 'a') {
cout << "yes" << "\n";
return 0;
}
}
cout << "no" << "\n";
}
Input: "where are you." Output: nothing
Input: "what." Output: yes
答案 0 :(得分:0)
使用getline()解决方案,如πάνταῥεῥ建议:
#include <iostream>
#include <string>
int main()
{
std::string sequence;
std::getline(std::cin, sequence);
for (auto c : sequence) {
if (c == 'a') {
std::cout << "yes\n";
return 0;
}
}
std::cout << "no\n";
}
答案 1 :(得分:0)
您可以使用std :: getline(),也可以尝试逐字选择。
#include <iostream>
#include <string>
int main(){
std::string sequence;
while(std::cin >> sequence){
for (auto c : sequence) {
if (c == 'a') {
std::cout << "yes\n";
return 0;
}
}
}
cout << "no" << "\n";
return 0;
}