'初始化':从'int'截断到'char'

时间:2013-12-27 09:20:18

标签: c++ visual-c++

#include "stdafx.h"
#include <iostream>
int main()
{
using namespace std;
char x = 'Game';
char y = x;
char z=y;
char z ='Play';
cout << z << endl;
cout << x << endl;
}

我只是C ++的初学者并使用Visual C ++ 2012.当我编译上面的代码时,我收到错误"truncation from 'int' to 'char'“。 谁能告诉我应该怎么做?

3 个答案:

答案 0 :(得分:2)

您最好只使用std::string

std::string x = "Game";
cout << x << endl;

您必须使用"而不是单引号。单引号用于表示单个char而不是数组

答案 1 :(得分:1)

§6.4.4.4.10

  

包含多个的整数字符常量的值   字符(例如'ab'),[...]是实现定义的。

有可能将其视为long或类似类型,“截断”以适合char

您需要双引号并使用std::string

string x = "Game";

答案 2 :(得分:0)

不知道你真正想做什么......

如果要声明字符串:

char * x = "Game";
string xs = "Game"; // C++

如果你想声明一个char:

char y = 'G';
char z = y;
char z2 = x[0];  // remember: in C/C++, arrays begin in 0

您不能声明两次相同的变量:

char z = y;
char z = 'Play';  // 'Play' is not a char and you can't redeclare z

所以,最终的代码似乎是;

#include "stdafx.h"
#include <iostream>
int main()
{
    using namespace std;

    string x = "Game";
    char y = x[0];

    char z = y;
    string z2 = "Play";

    cout << z << endl;
    cout << x << endl;
}