C++ 从文件读取到字符串并传递到函数
当我试图传递一个包含getline()语句内容的字符串时,我在试图理解为什么会在本节中引发异常时遇到一些问题C++ 从文件读取到字符串并传递到函数,c++,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");
`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++;
}`
`reference操作符[](const size\u type\u Off)
{//下标可变序列
auto&_My_data=this->_Get_data();
_IDL_VERIFY(_Off我在getline()中没有发现任何问题,但是在set_token()中,当您提取n的大小时,存在明显的运行时问题。sizeof不会给出字符串中的总字符数,但size()会给出
试试这个:
size=n.size():您没有向我们展示set\u-token
函数!!!@john它甚至在set\u-token
函数中执行命令之前就崩溃了。int-size=sizeof(n);
super-break.\n经常给我们的建议是对此类问题使用调试器。它会很快发现问题