将字符串中的目录解析为 ofstream file.open

Parsing a directory in a string to ofstream file.open

提问人:Joosh 提问时间:3/3/2019 最后编辑:gsamarasJoosh 更新时间:3/3/2019 访问量:93

问:

我正在尝试通过命令行解析目录并根据输入的内容打开文件。命令行参数似乎是正确的,因为我之前打印了它以确保,但位置文件似乎没有被修改。

如果我传递字符串:A:/Documents/fstreamtest/test.txt(.txt 和 cpp 文件的位置),文件将保持不变

如果我传递字符串:test.txt,它似乎可以工作

我尝试过使用“/”和“\\”来表示不同的目录。

int main(int argc, char const *argv[])
{
    string str;
    string fileName;
    ofstream file;


    if(argc>=2){
        fileName = argv[1];
        cout << fileName.c_str() << endl;
        file.open(fileName.c_str());
    } else{
        file.open("wordlist.txt");
    }

    cout << "Enter a value..." << endl;
    cin >> str;

    file << "test\n" << "\n";
    vector<char> cha(str.c_str(), str.c_str() + str.size() + 1);

    for(int i = 0; cha[i]!='\0'; i++){
        cout << cha[i] << endl;
    }

    return 0;
}
C++ Windows Fstream IOstream

评论

0赞 gsamaras 3/3/2019
使用或反斜杠与您的操作系统有关。您使用的是 Windows 还是类 UNIX 系统(例如 Ubuntu、Mac)等?另外,你说的是什么意思?在您的问题中准确包含您作为 cmd 参数传递的内容。此外,缩进你的代码,并可能完成你的主功能。/A:/Documents/.../test.txt
0赞 Joosh 3/3/2019
我在 Windows 上,所以任何一个都应该可以工作。A:/Documents/.../test.txt 是我尝试访问的 .txt 文件的位置,没有中间的文件夹 我刚刚减少了两者之间的文件夹数量以提高可读性。再次,主函数是完整的,并且正确缩进(我假设它没有正确复制,这是在我身上 - 我的第一篇文章),我只包含了负责打开文件以减少混乱的功能部分。
0赞 Sailanarmo 3/4/2019
在 Windows 上,我相信您必须执行四重反斜杠,因为您是从根目录开始的。\\\\A:\\Documents\\fstreamtest\\test.txt

答: 暂无答案