これを解決しようとして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; }
理由はわかりませんが、最初の印刷では期待どおりの出力が得られますが、2番目の印刷では奇妙なものが印刷されます。関数の入力と結果を出力します。
buffer = "share feo" directorio = "/home/demian/archredes/" 最初の出力: /home/demian/archredes/feo 2 番目の出力: /home/demian/archredes/fA
ありがとうございます!