我不是ac/c +程序员(我知道delphi),无论如何我试图编译用c ++编写的程序,我改变它接受一些参数(一个文件的路径,在原始代码中硬编码)来自命令线,原点线是
char Filepath[50] = "F:\\mylib\\*.mp3";
Run Code Online (Sandbox Code Playgroud)
我把它改成了
char Filepath[50] = argv[1];
Run Code Online (Sandbox Code Playgroud)
但我得到"无法从'char*'转换为'char []'"错误,主要功能就像
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
Run Code Online (Sandbox Code Playgroud)
我该怎么办??即时通讯使用MSVC6.
谢谢
使用:
char *Filepath = argv[1];
Run Code Online (Sandbox Code Playgroud)
当argv[1]已经包含所需的字符串时,不需要为50个字符分配空间.此外,您无需确定命令行参数中的最大字符数; 该空间已经为您分配.
但请注意,上述内容不会复制字符串,因此如果您打算修改字符串(可能通过附加扩展名或任何内容),那么您将不得不使用strcpy()或类似的解决方案.处理C中的字符串比Delphi中的手动字符复制工作要多得多.
char Filepath[50] = argv[1];
Run Code Online (Sandbox Code Playgroud)
要复制上面示例中的字符串,您需要使用strcpy(或其任何变体)
另一种(更好的)方法是使用C++字符串
std::string Filepath = argv[1];
Run Code Online (Sandbox Code Playgroud)
这也会复制字符串.
| 归档时间: |
|
| 查看次数: |
10820 次 |
| 最近记录: |