1

我正在尝试在“C”中创建一个 char 数组,该数组在数组末尾有一个整数值。但我试图在循环时更改整数值。

system("mv " + file_list[loca] + " /media/MyBook1TB/" + folderint);

file_list[n][200] // is a char array of file locations
folderint //  folder increment variable example "/media/MyBook1TB/0" then "/media/MyBook1TB/1"

我不确定 c.str() 是否适用于我在上面的 system() 中输入的内容。

我在 cplusplus 网站上找不到任何东西。有什么帮助吗?

我试图不使用字符串库..

4

2 回答 2

3

在 C 中,您不能只是将字符串加在一起来连接它们。您需要执行以下操作:

char command[MAX_LENGTH];
sprintf(command, "mv %s /media/MyBook1TB/%d", file_list[loca], folderint);
system(command);

您没有指定是什么file_list,因此您需要定义自己的MAX_SIZE. 另请注意,%s假设file_list是一个字符串并%d假设它folderInt是一个int.

旁注,您发布的命令的性质似乎更适合 shell 脚本,但如果您必须使用 C,请查找exec函数。system是一个危险(且效率低下)的调用函数(尤其是在这种情况下,如果您没有清理输入)。

于 2013-08-16T03:31:41.333 回答
2
char system_string[LARGE_COMFORTABLE_NUM];

sprintf(system_string,"mv %s /media/MyBook1TB/%d",file_list[loca],folderint);

system(system_string);
于 2013-08-16T03:30:50.450 回答