如何从字符串中读取多个整数
How to read multiple integers from string
输入:
Mint Ice Cream 6 80
法典:
int IntAmount=2;
string line, name, data;
ifstream fd('Input.txt);
getline(fd, line);
name=line.substr(0, 20); // name="Mint Ice Cream "
data=line.substr(20); // data ="6 80"
for(int i=0; i<IntAmount; i++){
// code that reads N[i] integer by integer from string called data
}
我得到了一些存储在同一个字符串data
中的整数。如果我知道有IntAmount
,如何将它们提取到数组N[i]
中?我知道我可以用更基本的方式阅读输入,但这只是非常简化的输入。
以下函数将为您完成这项工作:
int string_to_int(char const *input_str, std::size_t count)
{
int result_integer = 0;
std::size_t i = 0 ;
if ( input_str[0] == '+' || input_str[0] == '-' )
++i;
while(i < count)
{
if ( input_str[i] >= '0' && input_str[i] <= '9' )
{
int val = (input_str[0] == '-') ? ('0' - input_str[i] ) : (input_str[i]-'0');
result_integer = result_integer * 10 + val;
}
else
throw std::invalid_argument("invalid string input");
i++;
}
return result_integer;
}
编辑:没关系,我以为是 C#
您可以将
data
字符串拆分为多个字符串,例如data.Split(' ')
(在' '
个字符处拆分它),然后对于它返回的每个子字符串,您可以使用函数 int.Parse(<substring here>)
来获取它的整数等效项。
相关文章:
- 如何在c++中从文本文件中逐行读取整数
- Arduino从Txt读取整数
- 如何将以逗号和空格分隔的整数读取到 2D 数组中?
- 从二进制文件中读取整数数组
- 如何从字符串C++读取多个整数
- 使用字符串流读取整数并将它们相加
- 如何将字符串和整数读取到两个单独的动态数组中的程序编写?
- 如何使用字符和整数C 读取文件
- 从文件到短 /长整数读取字节
- do整数读取需要受到关键部分的保护
- 此项目不会将整数读取为二进制并将其作为二进制输出到新文件
- 将连续字节作为一个整数读取
- 如何将文件中的整数读取到动态数组中
- 如何将字符串读取为字符串向量或将整数读取为整数向量
- 将文件中的间隔整数读取到C++数组中
- 将文件中的整数读取到C++中的向量中
- 如何在C++中将空格和换行符分隔的整数读取到2D数组中
- 将一组整数读取为C++中的字符串
- 我如何得到多行字符串和整数读取和输入文件,并在c++中显示
- 通过无符号整数读取无符号字符数组未定义,因此不安全