关于C++输入的基础

一、cin的用法

cin是C++标准库中的输入流对象,它可以用来读取各种类型的数据,如整数、浮点数、字符、字符串等。cin相当于可以将输入流中字符串自动解析成整数、浮点数、字符、字符串,当完成一次正确的解析就会停止。cin会自动忽略空格、制表符和换行符。

string str;
cin >> str;

这段代码如果输入的字符串是"Ferdinand Hu",则str的结果是"Ferdinand",而没有"Hu",因为cin会自动忽略空格。

二、cin.get()的用法

cin.get()函数可以用来读取一个字符,包括空格、制表符和换行符等。它可以读取输入流中的下一个字符,并将其存储到一个字符变量中。

char ch;
cin.get(ch);

这里如果输入' '或者'\n',ch都可以读取到。

三、getline()的用法

  1. 常规用法

getline()函数可以用来读取一行文本,它可以读取输入流中的下一行字符,并将其存储到一个字符串变量中。getline()函数会读取输入流中的所有字符,包括空格、制表符和换行符等,直到遇到换行符为止。换行符也会被读取,并且不会被存储到字符串变量中。

string str;
getline(cin, str);

如果输入"input \n",换行符也被读取,但str只会保存到"input ",包含了空格,但没有换行符。

  1. 进阶用法

getline()函数通过第三个参数,可以配合stringstream实现字符串分割的作用。

#include <string>
#include <vector>
#include <iostream>
#include <sstream>
using namespace std;
int main() {
    string str;
    getline(cin, str);
    stringstream ss(str);
    string parameter;
    vector<string> paraVec;
    while (getline(ss, parameter, ',')) {
        paraVec.push_back(parameter);
    }
}

上面的代码将输入的一行字符串,用','分割成多个字符串。

例如:输入"init,5,10",分成了 "init" "5" "10"

猜你喜欢

转载自blog.csdn.net/hu853712064/article/details/129753919
今日推荐