当前位置: 首页 > news >正文

C++输入输出模式(ACM模式)笔记(个人)(第十六天)

        上周参加了学校的全国高校计算机能力挑战赛校赛,大题四题会三题,不会的卡在了输入这!!!(死了),真的好伤心(555,所以自学了一下。

常规输入输出:

1.cin:

cin是C++中,标准的输入流对象。
注意!!:cin以空格、tab、换行符作为分隔符。

#include <iostream>
using namespace std;
int main() {int num;cin >> num;cout << num << endl;return 0;
}

2、getline():

cin在输入字符串的时候,如果有空格,那么就会打断输入。因此就需要getline()函数了。
getline只有在遇到换行符才会终止输入。
格式为: getline(cin,字符串名)

#include <iostream>
#include <string>
using namespace std;
int main() {string str;getline(cin, str);cout << str << endl;return 0;
}

3、getchar():

getchar字如其名,是从缓冲区获取第一个字符。

#include <iostream>
using namespace std;
int main() {char ch;ch = getchar();cout << ch << endl;return 0;
}

数组的输入输出:

1.输入固定长度:

#include <iostream>
#include <vector>
using namespace std;
int main() {int n;cin >> n;vector<int> vec(n);for (int i = 0; i < n; i++) {cin >> vec[i];}for (int i = 0; i < vec.size(); i++) {cout << vec[i] << ' ';}return 0;
}

使用vector容器的话,也可以通过迭代器输出:

for (vector<int>::iterator it = vec.begin(); it != vec.end(); ++it) {cout << *it << ' ';
}              //输出部分,以迭代器形式输出

也可以通过algorithm库的for_each函数和lambda表达式输出:

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {int n;cin >> n;vector<int> vec(n);for (int i = 0; i < n; i++) {cin >> vec[i];}for_each(vec.begin(), vec.end(), [](int a) {cout << a << " ";});return 0;
}

2.长度不固定:

我就是在这里卡了啊(呜呜呜
完全不知道怎么写。
可以通过while(cin >> m){}解决:

#include <iostream>
#include <vector>
using namespace std;
int main() {int num;vector<int> vec;while (cin >> num) {vec.push_back(num);if (getchar() == '\n') break;}for (int i = 0; i < vec.size(); i++) {cout << vec[i] << ' ';}return 0;
}

空格不会输入进数组,在识别到换行符就结束。

3.以非空格隔开的元素输入

以字符串输入,然后在对其进行处理。

#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {string str;getline(cin, str);vector<int> vec;int fast = 0;for (int slow = 0; slow < str.size(); slow++) {fast = slow;while (str[fast] != ',' && fast < str.size()) {fast++;}string tmp = str.substr(slow, fast - slow);vec.push_back(stoi(tmp));slow = fast;}for (int i = 0; i < vec.size(); i++) {cout << vec[i] << ' ';}return 0;
}

就这么多啦,当然还有sstream库的stringstream等,但不常用,可以自行取看看
周五弄个大的,数据库的数据分析到实施全过程。


 

http://www.dtcms.com/a/512539.html

相关文章:

  • 杭州高端网站开发检查色盲效果网站
  • 面试(五)——Java 集合体系
  • k8s java应用pod内存占用过高问题排查
  • Android8.0+Camera2编译烧录源码研习
  • 液压产品做哪个网站好网站关键字排名怎么做
  • 做网站小程序内蒙古银税互动平台
  • 从虚拟甲板到未来战场!数字孪生重构海战航母战斗群
  • 宁波住房与城乡建设部网站软件技术适合女生学吗大专
  • 从零实现 vLLM (1.2):如何实现张量并行
  • 设计系统掉电保持参数参考
  • 机器学习:基于大数据的基金数据分析可视化系统 股票数据 金融数据 股价 Django框架 大数据技术(源码) ✅
  • 网站留言板样式洛阳青峰网络公司做网站
  • 基因数据库网站开发价格导航门户网站怎么做
  • Java Web登录系统实现(不使用开发工具)
  • 安徽省建设安全质量协会网站百度新闻官网
  • 数据结构——最短路径算法
  • SBC在企业中的应用场景
  • ai痕迹记录
  • 中建八局第一建设公司网站网站建设丨找王科杰专业
  • 网站建设的目标是什么制作简单门户网站步骤
  • C++11----新引入的默认成员函数
  • 广州商城型网站建设佛山网站建设有哪些
  • 寻找建设网站客户wordpress 是php
  • 理解 Linux 进程间通信(IPC)
  • JaveWeb后端-Web基础-SpringBoot Web、HTTP协议
  • Spring 自动注入是怎么实现的?从 @Component 到 @Autowired 的完整流程
  • 基于springboot的基于智能推荐的卫生健康系统开发与设计
  • 技术面:Spring(循环依赖,spring与springboot的区别)
  • 网站建设相关法律python破解wordpress
  • 高并发系统网络优化:TCP 参数调优、HTTP 协议优化(HTTP_2、HTTPS)