Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.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
如何在C++;? 我对C++很陌生,一直在学习这样的东西: cout << "My age is: "; cin >> age; #include <iostream> #include <ctype.h> #include <termios.h> struct non_canon_buf : std::streambuf { char buffer; non_canon_buf() { termios flags = {}; tcgetattr(0, &flags); flags.c_lflag &= ~(ICANON | ECHO); tcsetattr(0, TCSANOW, &flags); } ~non_canon_buf() { termios flags = {}; tcgetattr(0, &flags); flags.c_lflag |= ICANON | ECHO; tcsetattr(0, TCSANOW, &flags); } int underflow() { if (std::cin.get(buffer)) { this->setg(&buffer, &buffer, &buffer + 1); if (!std::isspace(static_cast<unsigned char>(buffer))) { std::cout << buffer << std::flush; } return std::char_traits<char>::to_int_type(buffer); } return std::char_traits<char>::eof(); } }; int main() { non_canon_buf sbuf; std::istream in(&sbuf); std::cout << "I am "; int age = 0; in >> age; std::cout << " years old\n"; if (!in) { std::cout << "ERROR: failed to enter a valid age!\n"; } } cout>年龄;_C++_String_Cin - Fatal编程技术网 年龄;,c++,string,cin,C++,String,Cin" /> 年龄;,c++,string,cin,C++,String,Cin" />

如何在C++;? 我对C++很陌生,一直在学习这样的东西: cout << "My age is: "; cin >> age; #include <iostream> #include <ctype.h> #include <termios.h> struct non_canon_buf : std::streambuf { char buffer; non_canon_buf() { termios flags = {}; tcgetattr(0, &flags); flags.c_lflag &= ~(ICANON | ECHO); tcsetattr(0, TCSANOW, &flags); } ~non_canon_buf() { termios flags = {}; tcgetattr(0, &flags); flags.c_lflag |= ICANON | ECHO; tcsetattr(0, TCSANOW, &flags); } int underflow() { if (std::cin.get(buffer)) { this->setg(&buffer, &buffer, &buffer + 1); if (!std::isspace(static_cast<unsigned char>(buffer))) { std::cout << buffer << std::flush; } return std::char_traits<char>::to_int_type(buffer); } return std::char_traits<char>::eof(); } }; int main() { non_canon_buf sbuf; std::istream in(&sbuf); std::cout << "I am "; int age = 0; in >> age; std::cout << " years old\n"; if (!in) { std::cout << "ERROR: failed to enter a valid age!\n"; } } cout>年龄;

如何在C++;? 我对C++很陌生,一直在学习这样的东西: cout << "My age is: "; cin >> age; #include <iostream> #include <ctype.h> #include <termios.h> struct non_canon_buf : std::streambuf { char buffer; non_canon_buf() { termios flags = {}; tcgetattr(0, &flags); flags.c_lflag &= ~(ICANON | ECHO); tcsetattr(0, TCSANOW, &flags); } ~non_canon_buf() { termios flags = {}; tcgetattr(0, &flags); flags.c_lflag |= ICANON | ECHO; tcsetattr(0, TCSANOW, &flags); } int underflow() { if (std::cin.get(buffer)) { this->setg(&buffer, &buffer, &buffer + 1); if (!std::isspace(static_cast<unsigned char>(buffer))) { std::cout << buffer << std::flush; } return std::char_traits<char>::to_int_type(buffer); } return std::char_traits<char>::eof(); } }; int main() { non_canon_buf sbuf; std::istream in(&sbuf); std::cout << "I am "; int age = 0; in >> age; std::cout << " years old\n"; if (!in) { std::cout << "ERROR: failed to enter a valid age!\n"; } } cout>年龄;,c++,string,cin,C++,String,Cin,和cin混在一起,我遇到了一个路障 说我想写“我x岁了!” “x”是cin>>年龄 我这样写代码 cout << "I am "; cin >> age; cout << "years old!"; cout>年龄; cout无符号整数; 性病:cin>>年龄; std::coutcin在将换行符输入控制台后读取输入 因此,您可以持续执行此操作的唯一方法是提示用户输入他们的年龄,然后继续编写 e、 g: std::cout>age; std::cout我假设

和cin混在一起,我遇到了一个路障

说我想写“我x岁了!”

“x”是cin>>年龄

我这样写代码

cout << "I am ";
cin >> age;
cout << "years old!";
cout>年龄;
cout
无符号整数;
性病:cin>>年龄;

std::cout
cin
在将换行符输入控制台后读取输入

因此,您可以持续执行此操作的唯一方法是提示用户输入他们的年龄,然后继续编写

e、 g:

std::cout>age;

std::cout我假设您实际上希望输入与最终输出一致。否则,解决方案很简单:首先读取值,然后打印,例如:

std::cout << "how old are you? ";
std::cin >> x;
std::cout << "I am " << x << " years old\n";

<>纯C++中你不能做你想做的事。您可以按照其他人的建议执行并重新打印该行:

std::cout << "I am " << age << " years old!\n"
收益率:

C:>AgeProgram.exe
我今年10岁

你可以这样做

int user_age;

std:cout<<"Enter Your Age:"         //Ask user for age

std::cin >>user_age;                //Read user input
std::cout<<"I am"<<user_age<<"years old!"<< std::endl; //finlly display the value
int用户年龄;
标准:coutuser_年龄//读取用户输入

这对我来说没什么意义。你不应该先让用户输入年龄,然后再输出
std::cout吗?那么,你是不是在试图想出一个用户可以输入年龄的空格?如果是这样,不幸的是,基于文本的系统通常不是这样工作的,但我相信这可以用它来完成,尽管它会变得更复杂。不使用换行符输入内容的方法是关闭流上的缓冲。但是这取决于你使用的是什么,不是C++的一部分。例如,在Windows中,您可以获取字符,而无需将其回显到屏幕上,然后再决定在屏幕上显示哪些字符。####这是可能的!如果您正在使用,并且因此可以使用头
conio.h
,那么有一个解决方案(但可能有点棘手,因为您需要处理字符,而不是流)。看一看。PS:在获得所需的字符后,您可以返回并使用streams从中读取整数值。用cin填空#迪特马克尔解释说,这是可能的,但需要做一些工作。我意识到,就我所知,我仅限于使用Olipro提供的cin逻辑。这只是避免此问题的一种方法,而不是解决方案。另外一种是因为我是唯一使用
std::endl
而不是
\n
@Mawg也使用
std::endl
的人,只是为了完整性,Windows的等效功能是禁用
ENABLE\u LINE\u INPUT
ENABLE\u ECHO\u INPUT
。然后可以使用(或带有stdin的
ReadFile
。@Mawg虽然这可能不是一个权威来源,但有一条关于
std::endl
的注释,其中指出“使用std::endl代替'\n',可能会显著降低输出性能,这是一些来源所鼓励的。”这可能是<>代码> \n\/C>的原因。@ MAWG:<代码> \n>代码>是完全有效的C++。您可能更喜欢
std::endl
,但不应该将堆栈溢出注释垃圾邮件发送给任何使用您不喜欢的编码约定的答案。另外,请注意,
\n
std::endl
在技术上甚至没有做完全相同的事情,正如Alex的链接中所解释的。同意;他们不会做同样的事情。这就是为什么我们应该使用
std::endl
。在特定情况下,当您确切地知道自己想要做什么时,
\n
是可以接受的,但这里我们试图教一个新来者良好的编码实践。@Mawg:有趣的是,您应该说我应该使用
std::endl
。但是请注意,我使用
'\n'
是经过深思熟虑的。出于某种原因,你可能想看看我几年前写的一篇文章。特别是,我强烈反对认为新来者应该使用
std::endl
:任何人都不应该使用
std::endl
,因为这是正确的评估。你能参考新行之后的内容吗?@Mawg
std::endl
刷新
cout
缓冲区。在很少的情况下,你真的想要这个<代码>“\n”
endl
在所有其他方面都是相同的。
std::cout << "I am " << age << " years old!\n"
#include <stdlib.h>

int main(int argc, char* argv[]) {
    unsigned int age;
    std::cout << "My age is: "
    std::cin >> age;
    system("cls");
    std::cout << "I am " << age << " years old!\n"
    ...
}
int user_age;

std:cout<<"Enter Your Age:"         //Ask user for age

std::cin >>user_age;                //Read user input
std::cout<<"I am"<<user_age<<"years old!"<< std::endl; //finlly display the value