如何使用 cin 从输入的字符串中提取特定的数值
How to extract specific numerical values from a inputted string using cin?
1U = 1.2A
1U = 2.3B
1U = 3.4C
1U = 4.5D
1U = 5.6E
1U = 6.7F
1U = 7.8G
上面的代码是输入。有没有办法只从每行中提取数字?例如,在第一行中,我唯一想要的值是 1.2,而不是"1U = "或它后面的 A。我尝试使用常规 cin 和 getline((,但它们检测到一个字符串,因此无法接收任何输入。我也尝试使用cin.ignore 但我相信我用错了。这是我到目前为止所拥有的:
double temp;
cin.ignore(numeric_limits<streamsize>::max(), 'n');
cin >> temp;
cin.ignore(numeric_limits<streamsize>::max(), 'n');
将忽略整行。但
cin.ignore(numeric_limits<streamsize>::max(), '=');
将忽略所有内容,直到 = 所以
1U = 1.2A
1U = 2.3B
1U = 3.4C
会成为
1.2A
1U = 2.3B
1U = 3.4C
现在你可以
cin >> temp;
这会将跳过空格 1.2 读入temp
,并在发现不能成为double
的东西时立即停止。
A
1U = 2.3B
1U = 3.4C
然后你循环回去
cin.ignore(numeric_limits<streamsize>::max(), '=');
哪个会离开
2.3B
1U = 3.4C
和
cin >> temp;
抓取 2.8,然后再次重复。
此代码可能如下所示
while (cin.ignore(numeric_limits<streamsize>::max(), '=') &&
cin >> temp)
{
// use temp
}
相关文章:
- 清除输入缓冲区后未提取字符串流
- 提取字符串中的随机单词
- 提取C++字符串
- 如何提取字符串中的特定值
- 如何提取字符串中的整数?
- 正则表达式:从模式字符串 1.string2'string3 中提取字符串,其中字符串 1 可以包含 '." 字符
- C - 从逗号分隔的浮点线提取字符串
- 如何使用正则表达式提取字符串的不匹配部分
- 处理从 std::istream 中提取字符串的空字符串大小写
- 可视化从文本C++中提取字符串数据
- 如何在C++中有效地提取字符串模式
- 分析文本文件以提取字符串
- C++:从两个符号之间提取字符串
- 提取字符串的一部分并将部分放入字符数组和另一个字符串变量C++
- 如何在c++中提取字符串的一部分
- 使用getline(),然后从用户输入中提取字符串(使用c++)
- 尝试从文本文件中读取列表,然后搜索文本文件,并在c++中提取字符串
- 试图从c++文本文件的单行中提取字符串的一部分
- 从字符数组中提取字符串
- 从JavaScript代码中提取字符串