所以,我目前正在编写一个行编辑器,作为 I/O、编写文件等方面的学习项目。它是用 C++ 编写的,我目前正在尝试写入用户选择的文件。我已经实现了 CLI 参数,但我目前不知道如何在程序中实现指定要写入的文件的方式。
char *filename;
if (argc >= 2){
filename = argv[1];
} else{
cout << "file>";
cin >> filename;
cin.ignore();
}
当我使用命令行参数时,这非常有效;但是,每当我不这样做时,只要我启动程序,它就会出现分段错误。我使用实际文件名的地方在 save 命令中:
void save(char filename[], int textlen, string file[]){
ofstream out(filename);
out << filestring(textlen, file);
out.close();
}
这也工作得很好。你有什么办法可以帮助我吗?完整的源代码,供审查,在https://github.com/GBGamer/SLED