我想连接两个字符串,我在我的程序String Filename = name+ "" + extension
中做了,比如扩展是一个整数值,我在这一行上方读取,名称是已经定义的路径。
但在 ROOT 我收到错误Error: + illegal operator for pointer 1
这里出了什么问题?还有其他方法吗?
我想连接两个字符串,我在我的程序String Filename = name+ "" + extension
中做了,比如扩展是一个整数值,我在这一行上方读取,名称是已经定义的路径。
但在 ROOT 我收到错误Error: + illegal operator for pointer 1
这里出了什么问题?还有其他方法吗?
ROOT 中的 TString 类有一个名为“Format”的函数,您可以使用它来连接字符串,就像格式化打印语句一样。这是 Format 方法的文档:https ://root.cern.ch/root/html/TString.html#TString:Format
这是有关格式化如何工作的文档http://www.cplusplus.com/reference/cstdio/printf/
如果extension
是整数,则先将其转换为字符串。
std::string Filename = name+ "" + std::to_string(extension);
+""+
什么都不做,顺便说一句
我将继续假设“名称”是一个字符*。
Char const* name = "john";
Char const* space = " ";
这里名称和空间是 2 个指向字符数组的指针。
当您添加尝试将这 2 加在一起时,编译器会尝试将 2 指针的值加在一起。这对编译器没有意义。您显然只能向指针添加偏移量。
解决此问题的方法是确保您添加的两件事之一是 std::string 而不是“c 字符串”。