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

C++输入输出、字符串分割

目录

一、cin、cin.getline()、getline()

1、cin>>

2、cin.getline()

3、getline()

4、注意

二、字符串分割

1、strtok

2、stringstream


一、cin、cin.getline()、getline()

1、cin>>

//用法1:输入一个数字或字符 #include <iostream> using namespace std; main () { int a,b; cin>>a>>b; cout<<a+b<<endl; } //用法2:接收一个字符串,遇“空格”、“TAB”、“回车”就结束 #include <iostream> using namespace std; main () { char a[20]; cin>>a; cout<<a<<endl; }

2、cin.getline()

//接收一个字符串,可以接收空格并输出 /*1、cin.getline()实际上有三个参数,cin.getline(接收字符串的变量,接收字符个数,结束字符) 2、当第三个参数省略时,系统默认为'\0' 3、如果将例子中cin.getline()改为cin.getline(m,5,'a');当输入jlkjkljkl时输出jklj,输入jkaljkljkl时,输出jk*/ #include <iostream> using namespace std; main () { char m[20]; cin.getline(m,5);//接收5个字符到m中,其中最后一个为'\0',所以只看到4个字符输出; cout<<m<<endl; }

3、getline()

用法:接收一个字符串,可以接收空格并输出,需包含“#include<string>” #include<iostream> #include<string> using namespace std; main () { string str; getline(cin,str); cout<<str<<endl; }

4、注意

当同时使用cin>>,getline()时,需要注意的是,在cin>>输入流完成之后,getline()之前,需要通过

str="\n"; getline(cin,str); //或 getline()

的方式将回车符作为输入流cin以清除缓存,如果不这样做的话,在控制台上就不会出现getline()的输入提示,而直接跳过,因为程序默认地将之前的变量作为输入流。

二、字符串分割

1、strtok

可以实现按多个字符分割字符串,需要导入库<cstring>

只能对char*进行分割,不能操作string,可以用strcpy将string转化为char*

#include<iostream> #include<cstring> using namespace std; int main(){ string material="1,2.3\n7,8,9,1,2 3,4,5,7,8,0,6,1"; char str[1024]; strcpy(str,material.c_str()); const char* cut=" ,.\n"; char* temp=strtok(str,cut); while(temp){ cout<<temp<<" "; temp=strtok(NULL,cut);//NULL参数令内部指针从上次结束位置继续 } }//结果为“1 2 3 7 8 9 1 2 3 4 5 7 8 0 6 1”

2、stringstream

需要包含“include<sstream>”

#include<iostream> #include<sstream> #include<vector> using namespace std; int main(){ string s="1,2.3,7,8,9,1,2,3,4,5,7,8,0,6,1"; //初始化 stringstream ss(s); //分隔出数字 vector<float> vec; //while读取ss中的字符,但无法分隔空格、回车 float t; char c; while(ss>>t){ vec.push_back(t); cout<<t<<" "; ss>>c; } //重置ss ss.clear(); ss.str(s); }//输出“1 2.3 7 8 9 1 2 3 4 7 8 0 6 1”
http://www.jsqmd.com/news/1400330/

相关文章:

  • SOFARegistry集群部署教程:Docker Compose与Kubernetes方案
  • 30分钟上手Huginn:零基础打造自己的自动化工作流
  • PhotoGIMP实操指南:把免费GIMP 3改造成熟悉的Photoshop界面,告别高价订阅
  • 深入理解RAT-retrieval-augmented-thinking架构:ModelChain类与双客户端设计详解
  • 杭州黄金旧饰准备出手,聊聊老凤祥饰品回收相关注意事项 - 日常前沿快讯
  • 32B视觉语言模型如何塞进32GB显卡?RTX 5090上的INT8量化部署与显存优化全记录
  • 3 分钟告别 Photoshop 订阅:用 PhotoGIMP 把免费 GIMP 改造成熟悉的界面
  • 凌晨一点,你还在为几百条测试用例加班吗?GameAISDK把游戏AI测试变成日常
  • AI 推理服务经过 Service Mesh:怎样拆分延迟与算力成本
  • 如何在Django Admin中集成Django-ColorField:5分钟快速上手
  • 告别手动装软件:用 Homebrew 一条命令搞定 macOS 与 Linux 环境部署
  • 从评论学“行业中性”
  • Parsec虚拟显示驱动完整指南:无物理屏幕也能5分钟搞定多屏扩展
  • 告别建造受限:ValheimPlus 英灵神殿增强模组 3 步上手完整指南
  • 2026年廊坊消防验收专用防火涂料商贸公司梳理 三月春核心优势及行业选择参考 - 小范同学a
  • 深入理解 shriek-fx 核心组件:事件驱动架构如何简化复杂业务逻辑
  • 游戏AI自动化测试完整指南:从零搭建你的图像识别游戏AI
  • PDF补丁丁:免费开源的PDF工具箱,书签编辑与页面旋转一键搞定
  • 杭州黄金婚嫁首饰闲置处理,收的顶无损检测不损伤贵金属 - 日常前沿快讯
  • Ghidra 12.1 逆向工程框架快速上手:从崩溃现场到反编译真相的完整路线
  • 解决NCCL错误:tensor_parallel常见问题与调试技巧
  • 笔记六:丁元英的孤独:通透者必然合群难
  • 如何让你的Blogster博客获得100分Lighthouse评分?性能优化全攻略
  • 微信聊天记录导出不再难:WeChatMsg 给每段对话上份“永久保险“
  • swin_tiny_patch4_window7_224.ms_in1k 避坑实战:28.3M 参数的轻量图像分类模型从加载到跑通全记录
  • 2026沈阳刑事律师选型完全指南:避坑要点评估体系律师盘点 - 互联网科技品牌测评
  • 关于网络流的 Trick
  • 零基础快速上手AI智能体开发:18 课免费开源课程带你从入门到部署
  • Maven依赖下载失败全解析:从网络超时到本地缓存损坏的实战排查指南
  • DrakeTyporaTheme 深度指南:12 款 Typora 主题,如何用 30 天找到你的最佳写作风格