【发布时间】:2018-01-15 20:37:54
【问题描述】:
[已解决]
我正在从存储加扰的无线电消息的 .txt 文件中逐行读取,但这并不重要。其中一行称为“it”,其中一些开头字符是数字,数字后跟一个“/”。我正在尝试将这些前几个数字导出到一个字符串(称为“s1”)中,以便以后可以将其用作单个整数,这是应该执行此操作的代码:
for (i = 0; i < it.find('/'); i++)
{
s1[i] = it[i];
}
cout << s1;
但我收到一个字符串下标范围错误消息,我搞砸了什么?
编辑
问题现已解决,感谢您帮助绝对新手 :D 我的错误是不知道字符串是如何工作的,对于了解该问题的人的实际答案,请找到 Ben Voigt 的回复。正确代码为:s1+= it[i];
【问题讨论】:
-
您不能使用
[](下标)更改字符串的长度。您只能访问其现有长度内的字符。要添加到最后,请使用会更改长度的操作之一,例如+=、append()或resize()。 -
尝试了完全相同的方法,但使用 += 无济于事。
-
s1 += it[i];应该可以正常工作,你遇到了什么错误? -
另外,在循环的每次迭代中运行
find('/')是一种非常笨拙的方法。实际上,您只需要检查一个字符,即您将要复制的字符。 -
我得到了与之前完全相同的错误消息“字符串下标超出范围”