2013-09-24 51 views
-1

我使用此代碼獲取下一個錯誤的結束:(System.IndexOutOfRangeException)無法獲取文件的使用StreamReader的

int main(array<System::String ^> ^args) 
{ 

String^ str="C:\\somefile.txt"; 

StreamReader^ sr=gcnew StreamReader(str); 

String^ mystr=sr->ReadToEnd(); 

int i=0; 

while (mystr[i++]!='\0') //what's wrong wth this check? 
{ 
    Console::Write(mystr[i]); 
} 
} 

回答

1

沒有說,在一個String類的字符串必須是零結尾像一個古老的C風格的字符串。相反,你應該從字符串對象本身獲取長度。

+0

如何使用StreamReader獲取字符串的長度?我用Google搜索了它,但沒有找到任何答案=) – user2809652

+0

@ user2809652如果您檢查例如[這個String類的引用](http://msdn.microsoft.com/en-us/library/system.string.aspx),你會看到它有一個['Length'屬性](http: //msdn.microsoft.com/en-us/library/system.string.length.aspx),可用於獲取字符串的長度。 –

+0

對不起,我的愚蠢,你說得對 – user2809652

相關問題