在C ++ / cli中使用System :: IO :: File :: ReadAllLines()

时间:2013-06-11 17:57:38

标签: .net c++-cli

我正在尝试在我的C ++项目中使用C#方法System::IO::File::ReadAllLines(),但每当我尝试将System::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。

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

1 个答案:

答案 0 :(得分: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);