草庐IT

c++ - 当我从 cin 读取时,为什么转义字符不起作用?

(一)stringstr="Hello\nWorld";当我打印str时,输出是:HelloWorld(b)stringstr;cin>>str;//giveninputasHello\nWorld当我打印str时,输出是:Hello\nWorld(a)和(b)有什么区别? 最佳答案 C++编译器在提供控制字符时有一定的规则——documentation.如您所见,当您在字符串文字中指定\n时,它会被compiler替换为换行符(ASCII值为0xa)。因此,您得到的不是2个符号\和n,而是一个二进制代码0xa的符号(我假设您使用A

c++ - 当我从 cin 读取时,为什么转义字符不起作用?

(一)stringstr="Hello\nWorld";当我打印str时,输出是:HelloWorld(b)stringstr;cin>>str;//giveninputasHello\nWorld当我打印str时,输出是:Hello\nWorld(a)和(b)有什么区别? 最佳答案 C++编译器在提供控制字符时有一定的规则——documentation.如您所见,当您在字符串文字中指定\n时,它会被compiler替换为换行符(ASCII值为0xa)。因此,您得到的不是2个符号\和n,而是一个二进制代码0xa的符号(我假设您使用A

c++ - 使用 std::cin 初始化 const 变量有什么技巧吗?

常见的std::cin用法intX;cin>>X;这样做的主要缺点是X不能是const。它可以很容易地引入错误;我正在寻找一些技巧来创建一个const值,并且只写入一次。天真的解决方案//NaiveintX_temp;cin>>X_temp;constintX=X_temp;你显然可以通过将X更改为const&;来改进它。仍然可以修改原始变量。我正在寻找一个简短而聪明的解决方案来解决这个问题。我确信我不是唯一一个会从这个问题的良好答案中受益的人。//编辑:我希望解决方案能够轻松扩展到其他类型(比如说,所有POD、std::string和可移动复制具有简单构造函数的类)(如果没有意义,请

c++ - 使用 std::cin 初始化 const 变量有什么技巧吗?

常见的std::cin用法intX;cin>>X;这样做的主要缺点是X不能是const。它可以很容易地引入错误;我正在寻找一些技巧来创建一个const值,并且只写入一次。天真的解决方案//NaiveintX_temp;cin>>X_temp;constintX=X_temp;你显然可以通过将X更改为const&;来改进它。仍然可以修改原始变量。我正在寻找一个简短而聪明的解决方案来解决这个问题。我确信我不是唯一一个会从这个问题的良好答案中受益的人。//编辑:我希望解决方案能够轻松扩展到其他类型(比如说,所有POD、std::string和可移动复制具有简单构造函数的类)(如果没有意义,请

c++ - 何时以及为什么需要在 C++ 中使用 cin.ignore()?

我用C++编写了一个非常基本的程序,它要求用户输入一个数字,然后输入一个字符串。令我惊讶的是,在运行程序时,它从未停止询问字符串。它只是跳过了它。在对StackOverflow进行了一些阅读后,我发现我需要添加一行内容:cin.ignore(256,'\n');在获取字符串输入的行之前。添加它可以解决问题并使程序正常工作。我的问题是为什么C++需要这条cin.ignore()行,我如何预测何时需要使用cin.ignore()?这是我写的程序:#include#includeusingnamespacestd;intmain(){doublenum;stringmystr;cout>nu

c++ - 何时以及为什么需要在 C++ 中使用 cin.ignore()?

我用C++编写了一个非常基本的程序,它要求用户输入一个数字,然后输入一个字符串。令我惊讶的是,在运行程序时,它从未停止询问字符串。它只是跳过了它。在对StackOverflow进行了一些阅读后,我发现我需要添加一行内容:cin.ignore(256,'\n');在获取字符串输入的行之前。添加它可以解决问题并使程序正常工作。我的问题是为什么C++需要这条cin.ignore()行,我如何预测何时需要使用cin.ignore()?这是我写的程序:#include#includeusingnamespacestd;intmain(){doublenum;stringmystr;cout>nu

c++ - cout、cin、cerr 和 clog 中的 "c"是什么意思?

cout、cin、cerr和clog名称中的“c”是什么意思?我会说char但我没有找到任何可以确认的东西。 最佳答案 The"c"standsfor"character"becauseiostreamsmapvaluestoandfrombyte(char)representations.[BjarneStroustrup'sC++StyleandTechniqueFAQ] 关于c++-cout、cin、cerr和clog中的"c"是什么意思?,我们在StackOverflow上找到一

c++ - cout、cin、cerr 和 clog 中的 "c"是什么意思?

cout、cin、cerr和clog名称中的“c”是什么意思?我会说char但我没有找到任何可以确认的东西。 最佳答案 The"c"standsfor"character"becauseiostreamsmapvaluestoandfrombyte(char)representations.[BjarneStroustrup'sC++StyleandTechniqueFAQ] 关于c++-cout、cin、cerr和clog中的"c"是什么意思?,我们在StackOverflow上找到一

c++ - if (cin >> x) - 你为什么可以使用那个条件?

这个暑假我一直在用“AcceleratedC++”学习C++,有一个概念我好像不太理解。为什么intx;if(cin>>x){}相当于cin>>x;if(cin){}通过查看代码,在我看来,我们使用cin作为变量。但是,我认为这是一个功能。当我们输入键盘的值是x时,为什么我们可以这样使用cin? 最佳答案 cin是类istream的对象表示标准输入流。它对应于cstdio流stdin。流的运算符>>overload返回对同一流的引用。流本身可以通过转换运算符在bool条件下评估为真或假。cin提供格式化流提取。操作cin>>x;如果

c++ - if (cin >> x) - 你为什么可以使用那个条件?

这个暑假我一直在用“AcceleratedC++”学习C++,有一个概念我好像不太理解。为什么intx;if(cin>>x){}相当于cin>>x;if(cin){}通过查看代码,在我看来,我们使用cin作为变量。但是,我认为这是一个功能。当我们输入键盘的值是x时,为什么我们可以这样使用cin? 最佳答案 cin是类istream的对象表示标准输入流。它对应于cstdio流stdin。流的运算符>>overload返回对同一流的引用。流本身可以通过转换运算符在bool条件下评估为真或假。cin提供格式化流提取。操作cin>>x;如果