C++ MoveFileA()不';我不喜欢我的论点
我在.txt文档中有一个文件名列表,我想将这些文件从一个文件夹移动到另一个文件夹。 使用MoveFileA()我得到一个错误,“std::string和LCPSTR之间没有合适的转换”。 这是我打开.txt文件后的代码:C++ MoveFileA()不';我不喜欢我的论点,c++,C++,我在.txt文档中有一个文件名列表,我想将这些文件从一个文件夹移动到另一个文件夹。 使用MoveFileA()我得到一个错误,“std::string和LCPSTR之间没有合适的转换”。 这是我打开.txt文件后的代码: while (std::getline(myfile, line)) { std::string oldLocation = "C:\\Users\\name\\Desktop\\docs\\folder1\\" + line; std::string newLocation
while (std::getline(myfile, line))
{
std::string oldLocation = "C:\\Users\\name\\Desktop\\docs\\folder1\\" + line;
std::string newLocation = "C:\\Users\\name\\Desktop\\docs\\folder2\\" + line;
MoveFileA(oldLocation, newLocation);
}
如果我输入完整路径作为MoveFileA的参数,而不是发送一个变量,它可以工作,但我无法以这种方式迭代.txt文件
有没有关于如何解决这个问题的建议
LCPSTR
表示指向字符串的长常量指针,这意味着它是以null结尾的c字符串
std::string
是一个对象。这是不一样的。但幸运的是,它提供了一个方便的方法,该方法提供了一个指向常量c样式字符串的指针。因此,正如评论所说,你应该:
MoveFileA(oldLocation.c_str(),newLocation.c_str())代码>
值得明确指出的是,您不能将它放在每个地方而不是char*
,但只有在字符串不被修改时才可以。它返回const char*
。这就是LCPSTR中的C变得重要的地方。LCPSTR
表示指向字符串的长常量指针,这意味着它是以null结尾的C字符串
std::string
是一个对象。这是不一样的。但幸运的是,它提供了一个方便的方法,该方法提供了一个指向常量c样式字符串的指针。因此,正如评论所说,你应该:
MoveFileA(oldLocation.c_str(),newLocation.c_str())代码>
值得明确指出的是,您不能将它放在每个地方而不是char*
,但只有在字符串不被修改时才可以。它返回const char*
。这就是LCPSTR中的C变得重要的地方。MoveFileA(oldLocation.C_str(),newLocation.C_str())代码>太棒了!感谢您的帮助。MoveFileA(oldLocation.c_str(),newLocation.c_str())代码>太棒了!谢谢你的帮助。