C++ 输入输出函数学习总结
来源:互联网 发布:算法基础打开算法之门 编辑:程序博客网 时间:2024/06/06 00:45
写在未了解string class之前:
cin:
接收一个输入的一个字符或者字符串,遇“空白字符”停止(例如:空格, 回车,TAB, 回车)
cin.get(name, size):
接收一个输入的一个字符或者字符串,遇“回车符”停止,但是接收除“回车符”之外的空白字符(例如:空格, 回车,TAB)。需要注意的是它会将“回车符”留在缓存队列中,不能连续两个cin.get(name, size),否则第二个cin.get(name, size)将会直接读入第一个cin.get(name, size)留下的回车符而导致无效。最好的方式是cin.get(name, size)之后紧跟一个cin.get(),将回车符读取,不影响后面的cin.get(name, size)。
1. 连续两个cin.get(name, size),有问题
cin.get(name, ArSize);
cin.get(dessert, Arsize); // a problem
2. 改为下面的程序则没有问题:
cin.get(name, ArSize); // read first line
cin.get(); // read newline
cin.get(dessert, Arsize); // read second line
cin.getline(name, size):
作用同cin.get(name, size),但是cin.getline(name, size)会将“回车符”摒弃,自动换成\0'。
写在了解C++ string class之后:
1. getline(cin, str)与cin.getline(name,size)相比发现,有了class概念之后cin成了一个参数,并且没有长度规格。
char a[20]; ----array;
string b; ----class,定义一个名字为“b”的字符串;
strlen(charr) -----charr的长度;
b.size() -----字符串b的长度;
下面引用C++ primer plus 的例子(此程序是有bug的,当输入字符超过charr 20位长度之后,第二个getline将会无输入、无输出);
#include <iostream>#include <string> // make string class available#include <cstring> // C-style string libraryint main(){using namespace std;char charr[20];string str;cout << “Length of string in charr before input: “ << strlen(charr) << endl;cout << “Length of string in str before input: “ << str.size() << endl;cout << “Enter a line of text:\n”;cin.getline(charr, 20); // indicate maximum lengthcout << “You entered: “ << charr << endl;cout << “Enter another line of text:\n”;getline(cin, str); // cin now an argument; no length specifiercout << “You entered: “ << str << endl;cout << “Length of string in charr after input: “ << strlen(charr) << endl;cout << “Length of string in str after input: “ << str.size() << endl;return 0;}运行结果一:输入少于20个字符,程序运行如下:
Length of string in charr before input: 5
Length of string in str before input: 0
Enter a line of text:
ljlkjl
You entered: ljlkjl
Enter another line of text:
lkjlkj
You entered: lkjlkj
Length of string in charr after input: 6
Length of string in str after input: 6
运行结果二:输入超过20个字符,程序运行如下;
Length of string in charr before input: 5
Length of string in str before input: 0
Enter a line of text:
kjlakjdkfjlajdklafjlsdkflajdfkjaskflasjdfljalkdjkajsdfkjakd
You entered: kjlakjdkfjlajdklafj
Enter another line of text: -----not able to input any char
You entered: -----
Length of string in charr after input: 19
Length of string in str after input: 0
- C语言输入输出函数总结
- c语言输入输出函数总结
- C语言输入输出函数总结
- C++ 输入输出函数学习总结
- C语言输入输出函数的总结
- C语言中的输入输出函数总结
- c/c++基本输入输出学习总结
- C语言输入输出总结
- C语言输入输出总结
- C语言输入输出总结
- C语言输入输出总结
- C语言输入输出总结
- c/c++输入输出总结
- C输入输出总结
- C语言输入输出总结
- C/C++输入输出函数(I/O)总结
- C语言输入输出函数
- c 输入输出函数
- 分页过程中SQL使用了 id in()方法
- Unity3D游戏开发软件
- lightoj 1201 树形dp
- Oracle 语法之 OVER (PARTITION BY ..) 及开窗函数
- 与机房收费系统的再一次相处(.NET版):
- C++ 输入输出函数学习总结
- 梅巫蹲蹲涂牙锌疾忻链叹油攘炼渭
- 乃萄屠世叹吨傧承厮涂蚕拱剐蓝云
- 诖刃频厥偻拭聪急谏假暇哑厍蒂黑
- Construct Binary Tree from Preorder and Inorder Traversal
- maven与struts2
- 皇椎怪假悦云蚕拔毁暇冠节云膛杉
- android中getSystemService
- nginx