#include <iostream>
#include <string.h>
#define DEFAULT 100
#define ADD(A,B) "A is : " + A + "Default is : " + DEFAULT + "B is : " + B
using namespace std;
int main()
{
string A = "a";
string B = "b";
cout << ADD(A,B) << endl;
return 0;
}
我希望输出为A is : a Default is : 100 B is : b
。
但是当我编译这个程序时,它给了我编译错误。
答案 0 :(得分:2)
我不确定你要做什么。但是100你不能添加到一个字符串。将其定义为字符串。
#define DEFAULT "100"
#define ADD(A,B) "A is : " + A +"Default is:" +DEFAULT+ " B is : " + B
using namespace std;
int main()
{
string A = "a";
string B = "b";
cout << ADD(A,B) << endl;
return 0;
}
答案 1 :(得分:0)
您无法添加字符串和整数。但是使用C ++ 11,您可以将该int转换为带有std::to_string(100)
的字符串。即:
#define ADD(A,B) "A is : " + A + "Default is : " + std::to_string(DEFAULT) + "B is : " + B
此外,为了将来参考,请务必包含确切的错误消息(从编译器输出中复制并粘贴)。
最后一件事:不要包括<string.h>
。相反,只需加入<string>
即可。 <string.h>
是C字符串标头(其C ++双精度为<cstring>
),并且该标头没有std::string
或许多您可能会追溯的其他功能。