Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ MoveFileA()不';我不喜欢我的论点_C++ - Fatal编程技术网

C++ MoveFileA()不';我不喜欢我的论点

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

我在.txt文档中有一个文件名列表,我想将这些文件从一个文件夹移动到另一个文件夹。 使用MoveFileA()我得到一个错误,“std::string和LCPSTR之间没有合适的转换”。 这是我打开.txt文件后的代码:

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())太棒了!谢谢你的帮助。