c++中cin实现输入字符串方式

Laurie ·
更新时间:2024-09-20
· 1717 次阅读

目录

c++ cin如何输入字符串

1、cin

2、cin.get()

3、cin.getline()

4、getline()

c++ cin输入 不定长输入

c++ cin如何输入字符串 1、cin

cin会过滤掉不可见字符(如空格、回车、tab等)。

如果不想略过空白字符,可以使用noskipws流控制。

cin>>noskipws>>input[i] 2、cin.get()

cin.get()可以用来接收字符

cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格。

char a[20]; cin.get(a,20); cout<<a<<endl;

cin.get()默认接收一个字符,以tab键、space键和enter键结束。

3、cin.getline()

接收一个字符串,可以接收空格并输出

cin.getline(m,5)

接收5个字符到m中,其中最后一个为‘\0’,所以只看到4个字符输出。

4、getline()

接收一个字符串,可以接收空格并输出,需包含#include

getline(cin,str); c++ cin输入 不定长输入

C++ 不定长输入,保存进数组,并打印

#include<iostream> #include<vector> using namespace std; int main() {     vector<int> arr;     int i;     do {         cin >> i;         arr.emplace_back(i);     } while (cin.get() != '\n');     for (auto it = arr.begin(); it != arr.end(); it++) {         cout << *it << " ";     }     cout << endl;     return 0; }

输出

1 2 3 4 5 6 7
1 2 3 4 5 6 7

cin.get()获取输入一个字符,包含空格或换行等特殊字符,cin自动忽视空格或换行等特殊字符,cin读取一个个数字,cin.get()读取空格...以此交叉读取。

#include<iostream> #include<vector> using namespace std; int main() {     vector<int> arr;     int i;     while (cin.get() != '\n') {         cin >> i;         arr.emplace_back(i);     }      for (auto it = arr.begin(); it != arr.end(); it++) {         cout << *it << " ";     }     cout << endl;     return 0; }

输出

1 2 3 4 5 6 7
2 3 4 5 6 7

cin.get()读取第一个数字,cin忽视第一个空格读取第二个数字,cin.get()读取第二个空格...以此交叉读取,因此第一个数字1没被cin读取。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持软件开发网。



cin c+ 输入 字符串 C++ 字符

需要 登录 后方可回复, 如果你还没有账号请 注册新账号