从文件读取到字符串并传递给函数

时间:2018-02-28 06:44:48

标签: c++

当我尝试传递包含getline()语句内容的字符串时,我遇到了一些问题,试图理解为什么我会在本节中抛出异常。

`reference operator[](const size_type _Off)
{   // subscript mutable sequence
auto& _My_data = this->_Get_data();
_IDL_VERIFY(_Off <= _My_data._Mysize, "string subscript out of range");
return (_My_data._Myptr()[_Off]);
}`

void set_token(string n);
    string token;

        while (fin.peek() != '0' && !fin.eof())
        {
            getline(fin, token);
            set_token(token);
        }

`void set_token(string n)
{
    string strarray[20];
    string token;
    int size = sizeof(n);
    int i = 0;
    int j = 0;
    while (i < size)
    {
        if (n[i] != ' ' && n[i] != '\0')
        {
            token += n[i];
        }
        else
        {
            strarray[j] = token;
            j++;
            token.clear();
            lexical(strarray[j]);
        }
        i++;
    }`

1 个答案:

答案 0 :(得分:1)

我在getline()中没有看到任何问题,但是在set_token()中,当你提取n的大小时,会出现明显的运行时问题。 sizeof不会给出字符串中的字符总数,但size()会这样。

试试这个:     size = n.size():