Arrays 从带有2个字符串的行中拆分字符串后,数组返回1个元素,所以在访问数组[1]时数组超出范围
我正在努力解决这个问题Arrays 从带有2个字符串的行中拆分字符串后,数组返回1个元素,所以在访问数组[1]时数组超出范围,arrays,string,visual-c++,split,Arrays,String,Visual C++,Split,我正在努力解决这个问题 while (readSiteid->Peek() != -1) { String^ OneLine = (readSiteid->ReadLine()); if (OneLine != nullptr) { array<String^>^ result = OneLine->Split('
while (readSiteid->Peek() != -1)
{
String^ OneLine = (readSiteid->ReadLine());
if (OneLine != nullptr)
{
array<String^>^ result = OneLine->Split(' ');
String^ first = result[0];
String^ second = result[1];
while(readSiteid->Peek()!=-1)
{
字符串^OneLine=(readSiteid->ReadLine());
如果(单行!=nullptr)
{
数组^result=OneLine->Split(“”);
字符串^first=结果[0];
字符串^second=结果[1];
这导致编译后数组超出范围。我使用MessageBox::Show(结果[1])进行了进一步测试,但没有得到任何结果。如果只访问结果[0](注释结果[1]),则没有问题
为什么索引只有1,这似乎有什么问题?显然,
Split()
返回的数组中的元素少于2个。这意味着`ReadLine()正在返回一个没有空格的字符串。从中读取的输入实际上是什么样子的?string1 string2,根据Split()
,两者之间没有空格。顺便说一句,WholeLine
应该是OneLine
,并且Split()
不接受单个Char
,它需要一个Char
s数组,例如:if(OneLine!=nullptr){array^result=OneLine->Split(newchar[]{''});…}
是的,这是一个打字错误(WholeLine)。我会尝试你的建议,谢谢。。。