可以在一行中以正确的方式将数据输入到bool数组中吗? 我有这样的事情:
#include <iostream>
using namespace std;
int main() {
unsigned short a;
cin >> a;
bool *b = new bool[a];
for(int i = 0; i < a; ++i)
cin >> b[i];
for(int i = 0; i < a; ++i)
cout << b[i];
delete [] b;
return 0;
}
例如:
正确输入:
5
1
0
1
0
1
正确输出:
10101
但我想以这种方式:
输入:
5
10101
输出:
10101
答案 0 :(得分:0)
您可以将整个输入读入字符串,然后转换为&#39; 1&#39;和&#39; 0&#39; char
进入bool
s:
#include <iostream>
#include <string>
int main()
{
std::string input;
std::cin >> input;
std::cout << "Input length was: " << input.length() << std::endl;
std::cout << "Output: ";
for (auto c : input)
{
std::cout << static_cast<bool>(c - '0');
}
return 0;
}
答案 1 :(得分:0)
您可以从输入中读取字符并将其转换为bool,例如:
for(int i = 0; i < a; ++i) {
char c;
cin >> c;
b[i] = static_cast<bool>(c - '0');
}
注意:这将允许以单行和多行输入,因为cin忽略空格字符。