gpt4 book ai didi

c++ - void函数调用不工作c++

转载 作者:搜寻专家 更新时间:2023-10-31 01:48:10 24 4
gpt4 key购买 nike

我正在尝试创建一个简单的文本编辑器。我需要使用列出的 void 函数。我无法更改参数。我可以调用第一个 void 函数 open(file) 但不能调用 insert 命令。我通过使用重载运算符打印结构来测试 open 函数。

 int main() 
{
editor_file file;
string command;
string insert;

cout << "Welcome to TextEditor. Please enter a filename: ";

open(file);

cout << file;
cout << '>';
cin >> command;


if(command == insert)
{
insert(file); // error: no match for call to '(std::string) (editor_file&)'
}

cout << file;

return 0;
}

在单独的文件中作废函数

void open(editor_file &file)
{

string line;
string filename;
ifstream fin(filename.c_str());
do
{
cin >> filename;
fin.open(filename.c_str());
file.name = filename;

if(fin.fail())
{
cout << "Invalid File. ";
cout << "Please enter another file name: ";
}
}while (fin.fail());

getline(fin, line);

while(fin)
{
file.data += line + '\n';
getline(fin, line);
}

}


void insert(editor_file &file)
{

char character;
cin >> character;
string info = file.data;

info.insert(file.cursor, character);
}

头文件中的结构

struct editor_file
{
std::string name;

std::string data;

int cursor;

bool is_open;

bool is_saved;

editor_file():cursor(0),is_open(false), is_saved(true) {}
};

最佳答案

尝试重命名您的

string insert

类似的东西

string strInsert

这是因为您不应该为变量和函数使用相同的名称!

关于c++ - void函数调用不工作c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18240927/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com