输入输出流

哈哈,今天终于开始更新博客了(^▽^)一时不知道写什么好,就写一下最近学到的东西吧!

输出流与输入流

  • cout是一个输出流对象,它是“console out”(控制台输出)的缩写,又称为插入运算符,是输出数据的,是属于basic_ostream类中的对象。而ostream类在iostream头文件中定义。
  • cin是一个输入流对象,又称为提取操作符,用来获取用户外部输入的数据,当用户进行键盘输入时,对应的字符将输入到操作系统的键盘缓冲区,当用户点击”Enter”键时,操作系统把键盘缓冲区的内容传输到cin流的内部缓冲区,“>>”操作符随后从这个缓冲区提取需要的信息,它是属于istream类中的对象。
  • 在C++中左移,右移操作符进行了重载。
  • 下面列举一些cincout的用法:

    cin.ignore() & cin.getline()

    1
    2
    3
    4
    
    char buf[20];
    cin.ignore(7);
    cin.getline( buf, 10 );
    cout << buf << endl;
    
  • 使用cin.ignore(7)在输入时会忽略输入的前7个字符。

  • 使用cin.getline(buf, 10)在输入时只会得到前10个字符,注意这10个字符中还要包括’/0’。

cin.peek() & cin.get()

1
2
3
4
5
6
7
8
char p;
cout << "请输入一段文本: \n";
while( cin.peek() != '\n' )
{
      p = cin.get();
      cout << p;
}
cout << endl;
  • cin.peek()函数的返回值是一个char型的字符,其返回值是指针指向的当前字符。
  • cin.get()函数用来从指定的输入流中提取一个字符(包括空白字符),函数的返回值就是读入的字符。

cin.gcount() & cin.read()

1
2
3
4
5
6
7
8
const int SIZE = 50;
char buf[SIZE];
cout << "请输入一段文本: ";
cin.read( buf, 20 );
cout << "字符串收集到的字符数为: " << cin.gcount() << endl;
cout << "输入的文本信息是: ";
cout.write( buf, 20 );
cout << endl;
  • cin.gcount()函数返回一个非格式化的提取方法读取的字符数,这以为着字符是由cin.get(),cin.getline(),cin.ignore()或cin.read()函数读取的,不是又提取操作符”>>”读取的。
  • cin.read(buf,20)是读取长度为20的字符串给buf字符数组中,该字符串中包括了’\0’。

cout.precision() & cout.width()

1
2
3
4
5
6
7
8
double result = sqrt(3.0);
cout << "对 3 开方保留小数点后0 ~ 9 位,结果如下: \n" <<endl;
for( int i=0; i <= 9; i++ )
{
     cout.precision(i);
     cout << result << endl;
}
cout << "当前的输出精度为: " << cout.precision() << endl;
  • cout.precision(i)函数设置当前输出精度为i,输出小数点后i-1位,第i位四舍五入。
1
2
3
4
5
6
7
8
9
10
int width = 4;
char str[20];
cout << "请输入一段文本: \n";
cin.width(5);
while( cin >> str )
{
     cout.width(width++);
     cout << str << endl;
     cin.width(5);
}
  • cin,width(n)读取长度为n的字符,注意最后一个字符为’\0’。
  • cout.width(n)设置输出宽度为n,不足的用空格补齐。

    名字空间

  • cout这个输出流对象是在名字空间std中来定义的。
  • 在使用时可以直接用指令using namespace std,然后再使用cout,或者直接使用std::cout

    std::cout<<"This is a test"<<endl

第一次写就先写到这了,希望以后自己能坚持下去!ヾ(◍°∇°◍)ノ゙

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值