C++ c++;:concat常量字符串与宏定义的字符串

C++ c++;:concat常量字符串与宏定义的字符串,c++,string,macros,C++,String,Macros,我想连接常量字符串和宏定义的字符串 #define DEEP_DRIVE_NET "C:/Users/tumh/hookv/deep_drive_model.prototxt" #define DEEP_DRIVE_WEIGHT "C:/Users/tumh/hookv/caffe_deep_drive_train_iter_35352.caffemodel" CHECK(file_exist(DEEP_DRIVE_WEIGHT)) << "Net Weight " + DEEP_D

我想连接常量字符串和宏定义的字符串

#define DEEP_DRIVE_NET "C:/Users/tumh/hookv/deep_drive_model.prototxt"
#define DEEP_DRIVE_WEIGHT "C:/Users/tumh/hookv/caffe_deep_drive_train_iter_35352.caffemodel"
CHECK(file_exist(DEEP_DRIVE_WEIGHT)) << "Net Weight " + DEEP_DRIVE_WEIGHT + " Not Found";
CHECK(file_exist(DEEP_DRIVE_NET)) << "Net definition " + DEEP_DRIVE_NET + " Not Found";
如何连接这些字符串


谢谢。

只需省略连接c样式字符串文字的
+
操作即可:

CHECK(file_exist(DEEP_DRIVE_WEIGHT)) << "Net Weight " DEEP_DRIVE_WEIGHT " Not Found";
CHECK(file_exist(DEEP_DRIVE_NET)) << "Net definition " DEEP_DRIVE_NET " Not Found";

<代码>检查(FieleIs存在(Debug),最好使用C或C++标签。可能是重复的,例如,我不明白为什么这可以工作。预处理器将转换为
“净重”C:/Users/tumh/hookv/deep\u drive\u model.prototxt“未找到”
,对吗?@alec.tu:C如果仅由空格分隔,字符串文本将自动连接。明白。你能解释一下在这种情况下什么是“指针”吗?两个指针指向两个常量字符串“净重”和“未找到”?@alec.tu A
“xxxxx”
literal的类型为
const char[]
,因此它最终构成一个指针。
CHECK(file_exist(DEEP_DRIVE_WEIGHT)) << "Net Weight " DEEP_DRIVE_WEIGHT " Not Found";
CHECK(file_exist(DEEP_DRIVE_NET)) << "Net definition " DEEP_DRIVE_NET " Not Found";