Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
std::cout使用'';暗示-不理解输出 我是C++的一个完整的新手,试图从C迁移到新的语言,但要使用它提供的新事物。谢谢你的支持_C++_Casting_Operators_Std_Stdout - Fatal编程技术网

std::cout使用'';暗示-不理解输出 我是C++的一个完整的新手,试图从C迁移到新的语言,但要使用它提供的新事物。谢谢你的支持

std::cout使用'';暗示-不理解输出 我是C++的一个完整的新手,试图从C迁移到新的语言,但要使用它提供的新事物。谢谢你的支持,c++,casting,operators,std,stdout,C++,Casting,Operators,Std,Stdout,简单而直接的问题是,std::cout中的“”做了什么? #include "includes.h" int main( ){ char c1 = 'x', c2; int i1 = c1 , i2 = 'x'; c2 = i1; std::cout << c1 <<'<< i1 <<'<< c2 <<'\n'; } #包含“includes.h” int main(){ 字符c1

简单而直接的问题是,std::cout中的“”做了什么?

#include "includes.h"

int main( ){

    char c1 = 'x', c2;
    int i1 = c1 , i2 = 'x';

    c2 = i1;

    std::cout << c1 <<'<< i1 <<'<< c2 <<'\n';

}
#包含“includes.h”
int main(){
字符c1='x',c2;
inti1=c1,i2=x;
c2=i1;

std::cout单引号用于围绕一个字符文字。例如:

'A' 'C' 'x' ' ' '5' etc.
单引号
不是用来围绕字符串文字(由多个字符文字组成),因此这样做是错误的:

`Hello World`
或者在您的情况下:

'<< i1 <<'
更新: 该规则也有例外。某些实现支持将多字符文字用单引号括起来

多字符文字具有类型int和实现定义的值


C11规范中的6.4.4/10提供了有关该主题的更多信息。

看起来书中可能存在打印问题,或者您复制了错误。可能应该是:

std::cout << c1 << ' ' << i1 << ' ' << c2 <<'\n';

首先,你必须理解
'a'
'a'
之间的区别

'a'
是字符文字。它的类型为
char
,在大多数系统中值为97(字母
a
的ASCII/Latin-1/Unicode编码)

“a”
是字符串文字。它的类型为
常量字符[2]
,并引用由2个
字符组成的数组,其值为
'a'
'\0'
。在大多数(但不是所有)上下文中,对
“a”
的引用将隐式转换为指向字符串第一个字符的指针

两者


除非比亚恩在写代码的时候喝醉了,否则你能把代码复制得相当糟糕吗:-)建议你重新检查和编辑。它不应该是双引号而不是单引号吗?哈哈,现在看看它,没有什么大的变化。原始代码是这个字符c='x';int i1=c;int i2='x';char c2=i1;cout-Yo你一定是遗漏了什么。那些可能应该是
'
,两个单引号之间有空格,而不仅仅是一个引号。那就是在
x
120
之间留出一个空格。我想他不是真的想在那里打印字符串。他一定是复制了什么错误,应该有一些字符在
i1
的左侧和右侧。单引号内可以有多个字符,其行为是实现-defined@M.M谢谢。我已经根据您的输入更新了答案。
std::cout << c1 << ' ' << i1 << ' ' << c2 <<'\n';
x 120 x
cout << 'a';
cout << "a";