我不是 c/c+ 程序员(我知道 delphi),无论如何我试图编译一个用 c++ 编写的程序,我已经将它更改为接受一些参数(一个文件的路径,它在原始代码中是硬编码的) 从命令行, 原来的行是
char Filepath[50] = "F:\\mylib\\*.mp3";
我把它改成了
char Filepath[50] = argv[1];
但我收到“无法从‘char *’转换为‘char []’”错误, 主要功能就像
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
我该怎么办??我正在使用 MSVC6。
谢谢
最佳答案
使用:
char *Filepath = argv[1];
当 argv[1]
已经包含您想要的字符串时,无需为 50 个字符分配空间。此外,您不必决定命令行参数中的最大字符数;该空间已分配给您。
但是请注意,上面的操作不会复制字符串,因此如果您打算修改字符串(可能通过附加扩展名或其他任何方式),那么您将不得不使用strcpy()
或类似的解决方案。在 C 中处理字符串比在 Delphi 中需要更多的手动字符复制工作。
关于C++ : cannot convert from 'char *' to 'char []' problem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1671728/