C++ > 牛客OJ在线编程常见输入输出练习场

C++处理输入输出

牛客OJ在线编程常见输入输出练习场

https://ac.nowcoder.com/acm/contest/5647

A A+B(1)

cpp 复制代码
#include <iostream>
#include <sstream>
using namespace std;

int main() {
    string line;
    while (getline(cin, line)) {
        istringstream iss(line);
        int a, b;
        iss >> a >> b;
        cout << a + b << endl;
    }
    return 0;
}

B A+B(2)

cpp 复制代码
#include <iostream>
#include <sstream>
using namespace std;

int main() {
    int t;
    cin >> t;
    cin.ignore(); // 忽略换行符

    for (int i = 0; i < t; i++) {
        string line;
        getline(cin, line);
        istringstream iss(line);
        int a, b;
        iss >> a >> b;
        cout << a + b << endl;
    }
    return 0;
}

C A+B(3)

cpp 复制代码
#include <iostream>
#include <sstream>
using namespace std;

int main() {
    string line;
    while (getline(cin, line)) {
        istringstream iss(line);
        int a, b;
        iss >> a >> b;
        if (a == 0 && b == 0) {
            break;
        }
        cout << a + b << endl;
    }
    return 0;
}

D A+B(4)

cpp 复制代码
#include <iostream>
#include <sstream>
#include <vector>
using namespace std;

int main() {
    string line;
    while (getline(cin, line)) {
        istringstream iss(line);
        int n;
        iss >> n;
        if (n == 0) {
            break;
        }
        int sum = 0;
        int num;
        while (iss >> num) {
            sum += num;
        }
        cout << sum << endl;
    }
    return 0;
}

E A+B(5)

cpp 复制代码
#include <iostream>
#include <sstream>
using namespace std;

int main() {
    int t;
    cin >> t;
    cin.ignore(); // 忽略换行符

    for (int i = 0; i < t; i++) {
        string line;
        getline(cin, line);
        istringstream iss(line);
        int n;
        iss >> n;
        int sum = 0;
        int num;
        while (iss >> num) {
            sum += num;
        }
        cout << sum << endl;
    }
    return 0;
}

F A+B(6)

cpp 复制代码
#include <iostream>
#include <sstream>
using namespace std;

int main() {
    string line;
    while (getline(cin, line)) {
        istringstream iss(line);
        int n;
        iss >> n;
        int sum = 0;
        int num;
        while (iss >> num) {
            sum += num;
        }
        cout << sum << endl;
    }
    return 0;
}

G A+B(7)

cpp 复制代码
#include <iostream>
#include <sstream>
using namespace std;

int main() {
    string line;
    while (getline(cin, line)) {
        istringstream iss(line);
        int sum = 0;
        int num;
        while (iss >> num) {
            sum += num;
        }
        cout << sum << endl;
    }
    return 0;
}

H 字符串排序(1)

cpp 复制代码
#include <iostream>
#include <sstream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    int n;
    cin >> n;
    cin.ignore(); // 忽略换行符

    string line;
    getline(cin, line);
    istringstream iss(line);

    vector<string> strs;
    string word;
    while (iss >> word) {
        strs.push_back(word);
    }

    sort(strs.begin(), strs.end());

    for (size_t i = 0; i < strs.size(); i++) {
        if (i > 0) cout << " ";
        cout << strs[i];
    }
    cout << endl;

    return 0;
}

I 字符串排序(2)

cpp 复制代码
#include <iostream>
#include <sstream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    string line;
    while (getline(cin, line)) {
        istringstream iss(line);
        vector<string> strs;
        string word;
        while (iss >> word) {
            strs.push_back(word);
        }

        sort(strs.begin(), strs.end());

        for (size_t i = 0; i < strs.size(); i++) {
            if (i > 0) cout << " ";
            cout << strs[i];
        }
        cout << endl;
    }
    return 0;
}

J 字符串排序(3)

链接:https://ac.nowcoder.com/acm/contest/5647/J

输入描述:

多个测试用例,每个测试用例一行。

每行通过,隔开,有n个字符,n<100

输出描述:

对于每组用例输出一行排序后的字符串,用','隔开,无结尾空格

cpp 复制代码
#include <iostream>
#include <sstream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    string line;
    while (getline(cin, line)) {
        vector<string> strs;
        size_t pos = 0;
        string token;

        // 手动按逗号分割
        while ((pos = line.find(',')) != string::npos) {
            token = line.substr(0, pos);
            strs.push_back(token);
            line.erase(0, pos + 1);
        }
        // 添加最后一个元素
        if (!line.empty()) {
            strs.push_back(line);
        }

        sort(strs.begin(), strs.end());

        for (size_t i = 0; i < strs.size(); i++) {
            if (i > 0) cout << ",";
            cout << strs[i];
        }
        cout << endl;
    }
    return 0;
}

C++输入输出要点总结

场景 写法
引入头文件 #include <iostream>, <sstream>
使用命名空间 using namespace std;
读取一行 getline(cin, line)
创建字符串流 istringstream iss(line)
从流中读取整数 iss >> num
忽略换行符 cin.ignore()
字符串分割(空格) 使用istringstream配合>>运算符
字符串分割(其他分隔符) 使用find()和substr()手动分割
向量排序 sort(vec.begin(), vec.end())
输出带分隔符 循环输出,条件判断是否添加分隔符
编译命令 clang++ -std=c++18 file.cpp -o output
相关推荐
大大da怪i1 小时前
GPU编程之warp级编程
c++·gpu算力
2401_891957311 小时前
简单了解一下智能指针(C++)
开发语言·c++
xiaoye-duck1 小时前
C++入门基础指南:输入输出、缺省参数与函数重载
c++
fpcc1 小时前
C++23中的import使用CMake实践
c++·c++23
沧澜sincerely1 小时前
蓝桥杯11 路径之谜
c++·蓝桥杯·stl·dfs·剪枝
羑悻的小杀马特1 小时前
深入C++与Redis的异构之美:用redis-plus-plus优雅操控键值宇宙之通用命令版!
c++·redis
MSTcheng.2 小时前
【C++】菱形继承为何会引发二义性?虚继承如何破解?
开发语言·c++
Lion Long2 小时前
C++20 异步编程:用future、promise 还是协程?
开发语言·c++·stl·c++20
渡我白衣2 小时前
计算机组成原理(3):计算机软件
java·c语言·开发语言·jvm·c++·人工智能·python