我是C ++编程的新手。 我试图向用户询问输入(例如):
std::string numbers;
std::cout << What is your favorite number;
std::cin >> numbers
如果用户输入
1, 2, 3
如何仅提取数字“2”?我知道在python中,你会做类似数字[1]的东西,但是在C ++中也有同样的方式吗?
答案 0 :(得分:3)
那么,“你最喜欢的数字是什么?”
这个想法与python或任何其他语言相同:用输入行分隔分隔符,如果你在意的话修剪,最后得到你想要的元素(如果存在)。
v[1]
或类似的第二个,检查它是否存在答案 1 :(得分:2)
你可以通过numbers.length()得到字符串的长度。
然后你可以使用for循环。
for(int i =0 ; i < numbers.length();i++)
{
if(numbers[i] == '2')
// do what you want you do here with 2
}
请记住,由于空白,您的cin不会获得完整的“1,2,3”字符串。你应该使用getline而不是cin。
如..
getline(cin, numbers,'\n');
答案 2 :(得分:1)
抓住一行数字:
int main()
{
std::vector<int> numbers;
std::string line;
std::getline(std::cin, line); // First read the whole line of input
std::stringstream linestream(line); // Set up to parse the line
int number;
while(linestream >> number) { // Read a number
char x; // for the comma
linestream >> x; // remove the comma
numbers.push_back(number); // Add to the vector (array)
}
// Print the number
std::cout << "The second number is: " << numbers[1] << "\n"; // vectors are 0 indexed
}