在Windows10和Ubuntu文件夹中写入文件

时间:2018-01-06 14:57:17

标签: c++ ubuntu fstream

因此,以下代码在Windows10上的Visual Studio 2017中完美运行,但在代码块中不在我的Ubuntu虚拟机上。该程序应该逐行从.txt文件用户名获取,然后在单独的文件夹中创建.txts,其名称是通过组合2个不同的用户名创建的。

这可能是什么原因?有没有办法解决这个问题,除了添加删除代码

示例usernames.txt

user11

user22

user33

预期结果:user11user22.txt,user11user33.txt,user22user33.txt

Ubuntu结果:user11.txt,user11user22.txt,user11user33.txt,user22.txt,user22user33.txt,user33.txt

ifstream fin("usernames.txt");
string user1;

while (getline(fin, user1))
    allUsers.push_back(user1);

for (int i = 0; i < allUsers.size(); i++)
{
    char fileArgument[60];
    strcpy(fileArgument, "PRIVATEHISTORY/");
    strcat(fileArgument, allUsers[i].c_str());
    for (int j = i+1; j < allUsers.size(); j++)
    {
        char temp[60];
        strcpy(temp, fileArgument); 
        strcat(temp, allUsers[j].c_str());
        strcat(temp, ".txt");

        cout << temp << '\n';

        FILE* x = fopen(temp, "w");
        fclose(x);
    }
    cout << '\n';
}
在Windows10 / VS2017上

cout结果

enter image description here

cout在Ubuntu / Codeblocks上的结果

enter image description here

1 个答案:

答案 0 :(得分:-1)

显然,usernames.txt中的额外\ n -s导致了它......