我已经 4 个小时试图解决这个问题,但我不能。我有这个功能:
string getRuta(int i, char* buffer, string directorio) {
int j = 0;
string nom;
char s;
do {
s = (char) buffer[i];
nom[j] = s;
j++;
i++;
} while (buffer[i] != 13);
nom[j] = '\0';
char *cstr = new char();
strcpy(cstr, directorio.c_str());
strcat(cstr, nom.c_str());
printf("%s\n",cstr);
string ruta = cstr;
printf("%s\n",ruta.c_str());
return ruta; }
我不明白为什么,但在第一次打印时我得到了预期的输出,但第二次打印出一些奇怪的东西。我给你函数输入和打印结果。
buffer = "share feo" directoryio = "/home/demian/archredes/" 第一次打印:/home/demian/archredes/feo 第二次打印:/home/demian/archredes/fA
谢谢!