网站建设 落地页,网站没有被收录,乐清网站建设网站建设,打开百度一下前面部分的示例程序几乎没有提供与用户的交互#xff08;如果有的话#xff09;。他们只是在屏幕上打印简单的值#xff0c;但标准库提供了许多其他方式通过其输入/输出功能与用户交互。本节将简要介绍一些最有用的方法。 cin标准输入cout标准输出cerr标准错误#xff08;输…前面部分的示例程序几乎没有提供与用户的交互如果有的话。他们只是在屏幕上打印简单的值但标准库提供了许多其他方式通过其输入/输出功能与用户交互。本节将简要介绍一些最有用的方法。 cin标准输入cout标准输出cerr标准错误输出clog标准日志记录输出
我们将只看到更详细的内容和标准输出和输入流; 并且也是输出流因此它们本质上的工作方式类似于 唯一的区别是它们标识用于特定目的的流错误消息和日志记录;在许多情况下在大多数环境设置中它们实际上做完全相同的事情它们在屏幕上打印尽管它们也可以单独重定向。 1.输出
在大多数程序环境中默认情况下标准输出是屏幕对于格式化的输出操作与插入运算符一起使用插入运算符写为即两个“小于”号。
cout Output sentence; // 在屏幕上打印输出句子
cout 120; // 在屏幕上打印数字120
cout x; // 在屏幕上打印x的值
运算符将它后面的数据插入到它前面的流中。 双引号是造成差异的原因;当文本被封闭在它们之间时文本按字面打印;如果不是则文本被解释为变量的标识符并改为打印其值。例
cout Hello; // 打印 Hello
cout Hello; // 输出变量Hello的内容 多个插入操作 可以链接在单个语句中
cout This is a single C statement; 要插入换行符应在换行符的确切位置插入换行符。在C中换行符可以指定为即反斜杠字符后跟小写。例如
cout First sentence.\n;
cout Second sentence.\nThird sentence.; 操纵器产生换行符就像插入一样;但它还有一个额外的行为流的缓冲区如果有被刷新这意味着请求将输出物理写入设备如果尚未写入。这主要影响完全缓冲的流并且通常不是完全缓冲的流。 2.输入 在大多数程序环境中默认情况下标准输入是键盘为访问它而定义的C流对象是 。
对于格式化输入操作与提取运算符一起使用提取运算符写为即两个“大于”符号。然后此运算符后跟存储提取数据的变量。例如
int age;
cin age;
提取操作使用运算符后面的变量类型来确定它如何解释从输入读取的字符;如果是整数则预期的格式是一系列数字如果是字符串则为字符序列等。 // i/o example#include iostream
using namespace std;int main ()
{int i;cout Please enter an integer value: ;cin i;cout The value you entered is i;cout and its double is i*2 .\n;return 0;
}
从中提取似乎使从标准输入中获取输入的任务变得非常简单明了。但是这种方法也有很大的缺点。在上面的示例中如果用户输入了无法解释为整数的其他内容会发生什么情况好吧在这种情况下提取操作将失败。默认情况下这允许程序继续而不设置变量值如果以后使用该值则会产生不确定的结果。 也可以链接提取以在单个语句中请求多个基准
cin a b;
相当于
cin a;
cin b;
在这两种情况下用户都需要引入两个值一个用于变量另一个用于变量。 3.CIN和字符串
提取运算符可用于获取字符串其方式与基本数据类型相同
string mystring;
cin mystring; 要从 获取整行存在一个名为 的函数它将流作为第一个参数将字符串变量作为第二个参数。例如
// cin with strings
#include iostream
#include string
using namespace std;int main ()
{string mystr;cout Whats your name? ;getline (cin, mystr);cout Hello mystr .\n;cout What is your favorite team? ;getline (cin, mystr);cout I like mystr too!\n;return 0;
}
在两次调用 中我们都使用相同的字符串标识符。程序在第二次调用中所做的只是将以前的内容替换为引入的新内容。 4.字符串流
标准标头定义了一个称为的类型该类型允许将字符串视为流从而允许以与对 和 执行相同的方式从字符串中提取或插入字符串或插入操作。
string mystr (1204);
int myint;
stringstream(mystr) myint; 这将声明 与初始化为 的值 和 类型的变量。然后第三行使用此变量从字符串构造中提取。这段代码将数值存储在名为 的变量中。
// stringstreams
#include iostream
#include string
#include sstream
using namespace std;int main ()
{string mystr;float price0;int quantity0;cout Enter price: ;getline (cin,mystr);stringstream(mystr) price;cout Enter quantity: ;getline (cin,mystr);stringstream(mystr) quantity;cout Total price: price*quantity endl;return 0;
}
在这个例子中我们间接地从标准输入中获取数值我们不是直接从中提取数值而是从中获取字符串对象中的行然后将该字符串中的值提取到变量和中。一旦这些是数值就可以对它们执行算术运算例如将它们相乘以获得总价。 Neng