1

我正在尝试 System::IO::File::ReadAllLines()在我的 C++ 项目中使用 C# 方法,但是每次我尝试将 aSystem::String^传入该方法时,它都会在该方法下划线并说:

“cli::array<sytem::String^,1>”类型的值不能用于初始化“System::String^”类型的实体

这是什么意思?我的代码:

#define IO System::IO
int main()
{
  System::String ^ path = gcnew System::String("C:\\text.txt");
  System::String ^ lines = IO::File::ReadAllLines(path);
  return 0;
}

C ++中还有替代功能吗?

我已经设置了要使用的项目,/clr。

如果您需要更多信息,请告诉我,我会提供。

4

1 回答 1

3

您误解了您收到的错误。ReadAllLines返回一个字符串数组,而不是包含整个文件内容的字符串。ReadAllText返回一个包含整个文件内容的字符串。

// if you would like an array of strings
array<String^>^ lines = File::ReadAllLines(path);

// or

// if you would like a single string with the file contents
String^ lines = File::ReadAllText(path);
于 2013-06-11T18:01:53.560 回答