INPUT:
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
中的整数。如果我知道它们有N[i]
,我该如何将它们提取到数组IntAmount
中?我知道我可以用更基本的方式读取输入,但这只是非常简化的输入。
答案 0 :(得分:0)
以下功能将为您完成任务:
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;
}
答案 1 :(得分:0)
编辑:没关系,我以为是C#
您可以将 data
字符串拆分为多个字符串data.Split(' ')
(将其分解为' '
- 字符),然后对于它返回的每个子字符串,您可以使用函数int.Parse(<substring here>)
得到它的等价整数。