string s1;
string s2;
getline(cin >> fixed, s);
for (int j = 0; j < s.length(); j++)
{
if ((j & 1) == 0)
{
s1.append(s[j]);//the type of s[j] is char,but the error still
//happening,
cout << tmp << endl;
}
else
{
s2.append(s[j]);
}
}
cout << s1 << " " << s2 << endl;
C2664“ 的std :: basic_string的,性病::分配器&GT; &amp; std :: basic_string,std :: allocator&gt; :: append(const std :: basic_string,std :: allocator&gt;&amp;)“:无法将elem 1格式”char“转换为”std :: initializer_list&lt; _Elem&gt ;”
答案 0 :(得分:3)
append()
没有超载需要一个char
。看看这里:
http://en.cppreference.com/w/cpp/string/basic_string/append
只有一个重载需要一个char
:
basic_string& append( size_type count, CharT ch );
所以,你可以使用它:
s1.append(1, s[j]);
或者,改为使用operator+=
:
s1 += s[j];