我希望将文本框的内容设置为.txt文件的内容, 但是我无法让它发挥作用。我有一个按钮,可以“刷新” 文本框的内容为.txt文件的内容,这是我正在使用的代码:
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
std::ifstream dat1("DataStore.txt");
String^ textHolder;
if (dat1.is_open())
{
while ( getline(dat1, line) )
{
textHolder += line.c_str;
}
textBox1->Text = textHolder;
dat1.close();
}
else textBox1->Text = "Unable to open file";
}
编译程序时出现以下两个错误:
error C3867: 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>::c_str': function call missing argument list; use '&std::basic_string<char,std::char_traits<char>,std::allocator<char>>::c_str' to create a pointer to member
error C2297: '+=' : illegal, right operand has type 'const char *(__thiscall std::basic_string<char,std::char_traits<char>,std::allocator<char>>::* )(void) throw() const'
我如何使这项工作?
注意:我试图在文本框中显示整个.txt文件的内容
答案 0 :(得分:2)
如果您打算使用C ++ / CLI,您也可以利用.net。您可以使用File
类为您读取文件:
System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{
textBox1->Text = System::IO::File::ReadAllText("DataStore.txt");
}
您需要希望进程工作目录包含该文件。在GUI应用程序中,通过指定文件的完整路径可以更好地服务,因为工作目录通常是定义不明确的。
如果您正在尝试学习C ++,那么可能无法启动.net C ++ / CLI WinForms应用程序。
答案 1 :(得分:1)
您忘记结束方法c_str,将其更改为c_str()