因此,以下代码在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结果
cout在Ubuntu / Codeblocks上的结果
答案 0 :(得分:-1)
显然,usernames.txt中的额外\ n -s导致了它......