1. 输入一个数

int a;
cin >> a;

2. 连续输入一个数

int a;
while (cin >> a) {
}

3. 按行读取

每次读取一行输入,包含空格,已回车换行结束

string input;
while (getline(cin, input)) {
}

4. 按行读取后,提取每行的字符串

  • 字符串之间用空格间隔
string input;
while (getline(cin, input)) {
    istringstream iss(input);
    string str;
    // ">>"会忽视字符串之间所有的回车和空格,即每次读取一个有效字符串输入
    // 在这里 iss 是每行的输入,不包含回车,所以 ">>" 会忽视掉字符串中间的所有空格
    while(iss >> str) {
    }
}
  • 字符串之间用逗号(或其他任意字符)间隔
string input;
while (getline(cin, input)) {
    istringstream iss(input);
    string str;
    // 提取分隔符之间的字符串,注意这里提取出的可以是空字符串
    // 若 "a,,b" 则提取出 a b 和一个空字符串
    // 同时,若以间隔符结尾,则不会再记入一个空字符串
    // 若 ",," 则提取出 2 个空字符串
    while(getline(iss, str, ',')) {
    }
}