C++ Again(1):文件读入与写出

C++中如何进行txt文件的读入和写入 大家可能大部分写代码都是在devc或者 vs里面直接输入数据,这一般常见于简单算法和数据的处理,但是一旦处理大数据的话,几百万,几千万,上亿个数据手打似乎不能轻易实现的,那么这篇文章我们来搞懂C++环境下如何进行io流读取txt文件,其实我们需要一个简单的代码进行分析。这里直接给出源码, 可以进行直接编译#include <fstream> #include <iostream&... 阅读详情

本文章的实现参考自<C++ Primer>第一章第5节。

当前的任务是实现一个C++程序,能够从某个文件读入字符串并将字符串写入到另一个文件中。

实现代码如下:

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(){
  ofstream outfile("out_file");
  ifstream infile("in_file");
  if(! infile){
      cerr<<"error:unable to open file"<<endl;
	  return -1;
  }
  if(! outfile){
      cerr<<"error:unable to open outfile"<<endl;
	  return -2;
  }
  string word;
  while(infile >> word)
	  outfile << word << '~';
  return 0;
}

in_file:this is a cat and that is a dog

out_file:this~is~a~cat~and~that~is~a~dog~

需要探究的问题:1)标点符号如何处理?2)如何实现写入out_file的时候将新的字符串写入到文件的最后面,而不是取代文件的内容。

3)ofstream ifstream新建对象的语句

1)以空格切分字符串,所以标点符号与普通字符没有区别

3)使用ofstream out_file = new ofstream("out_file")出错;

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(){
 // ofstream outfile("out_file");
 // ifstream infile("in_file");
	ofstream outfile;
	ifstream infile;
	outfile.open("out_file");
	infile.open("in_file");
  if(! infile){
      cerr<<"error:unable to open file"<<endl;
	  return -1;
  }
  if(! outfile){
      cerr<<"error:unable to open outfile"<<endl;
	  return -2;
  }
  string word;
  while(infile >> word)
	  outfile << word << '~';
  return 0;
}

2)参考自: http://blog.sina.com.cn/s/blog_66474b160100wgan.html
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(){
 // ofstream outfile("out_file");
 // ifstream infile("in_file");
	ofstream outfile;
	ifstream infile;
	outfile.open("out_file",ios::app);
	infile.open("in_file");
  if(! infile){
      cerr<<"error:unable to open file"<<endl;
	  return -1;
  }
  if(! outfile){
      cerr<<"error:unable to open outfile"<<endl;
	  return -2;
  }
  string word;
  while(infile >> word)
	  outfile << word << '~';
  return 0;
}

C++去除cpp文件的注释 问题:读取一个cpp文件,去除其中所有的单行注释(//)和多行注释(/**/),将去除注释后的内容写入一个新文件。 注意: 不能去除字符串中的任何字符,如 "asdf//gh/**/k" 需要原样输出 能够识别转义的双引号(\")和非转义的双引号("),如: '\"'(单引号中的转义双引号字符) "asdf\"" (字符串中的转义双引号不能表示字符串结束) \"aaa"bcdef"(同理,转义双引号不能表示字符串开始) 命令行参数为: 参数1:原文件名 参数2:新文件名 ... 阅读详情

相关推荐

C++连续读入个数未知的数字

背景 在很多题目中都会需要连续读入若干个数字,而数字的个数可能是未知的,这时候要怎么办呢?这里假设需要读入一行未知个数的数字。 从命令行读入 方法一 先以字符的形式的读入,再将字符转换成数字 方法二 读入一个数字,再读入一个空格,再读入一个数字...循环往复,直到读到换行符为止。 代码示例 int a[100],t=1; cin>>a[0]; while(cin.ge...

li_il的博客 5803

c语言关键字

c语言关键字

m0_72536629的博客 805

C++ Yaml文件解析安装及使用 yaml-cpp

C++ Yaml文件解析安装及使用安装 yaml-cpp克隆官方库编译 yaml-cpp示例代码robot.cpprobot.yaml编译 robot.cpp运行结果难点分析与总结什么是 .a 与 .so 文件静态链接库(.a) 与动态链接库(.so)静态链接库动态链接库g++(gcc)编译选项参考文章 安装 yaml-cpp 克隆官方库 git clone https://github.co...

Fourier_Legend的博客 2万+

21 10 31 C语言学习总结(goto语句,函数)

一 goto语句 #include<stdio.h> int main() { again: printf("hehe\n"); printf("haha\n"); goto again;//跳到again的位置,必须在同一个函数内 return 0; } 理论上讲goto语句没必要,可以被循环代替,但某些场合下goto语句用得着,例如跳出多层循环 for(...) { for(...) { for(...)

qq_62426725的博客 327

C和C++中的文件读入写出区别

1、先写写C的吧,在C语言中读入写出文件要用到fopen这个函数,而且要先定义文件指针,为了方便,我们不妨先定义两个,一个fp1用作输入文件指针,另一个fp2用作输出文件指针。 FILE *fp1,*fp2; 接下来我们使用fopen()函数以只读方式(r)打开输入文件input.txt fp1 = fopen("input.txt","r"); 然后使用fopen()函数以写入方式(w)

suda的博客 1435

C++ OpenCV学习:一、读入图片,显示图片,保存图片

常用的标志有IMREAD_GRAYSCALE(灰度图像读入)、IMREAD_COLOR(BGR彩色图像读入),可依次用数字 -1,0,1代替。一般该函数只能保存8位无符号(CV_8U)单通道,或3通道(具有BGR通道顺序)图像。以该图片salute.png为例,保存在代码路径下。显示一帧并等待25ms,适用于逐帧显示视频。参数1:图片路径(绝对路径或相对路径,函数,否则它不会显示图像。参数3:不常用,故不作介绍。参数2:显示的图像变量名。参数2:保存的图片变量名。参数1:保存的文件名。

m0_46685221的博客 4520

c语言again的用法,again的用法总结大全

again的意思adv. 再一次,再说,此外,不过again用法again可以用作副词again主要用于修饰性动态动词,基本意思是“重复”,即表示动作又一次、再一次发生,重复发生; 也可表示“重新”,即恢复到原来的位置或状态。引申可表示“回复”“反响”“响应”。again还可用于引出第二种情况或做进一步论述,常可译为“再者”“此外”“何况”“况且”。again可表示“增加…倍”,此时,again放...

weixin_33477210的博客 3369

深入解析rknn-toolkit2混合量化:如何为RK3588和RK356X选择最佳量化策略

本文深入解析了RKNN-Toolkit2混合量化技术,针对瑞芯微RK3588和RK356X芯片的硬件特性差异,提供了最佳量化策略选择指南。通过混合量化技术,开发者可以在保持较高推理效率的同时显著降低精度损失,特别适用于边缘计算场景。文章详细介绍了混合量化的技术原理、实战流程及芯片专属优化策略,帮助开发者充分利用硬件特性提升模型性能。

dog123的博客 258

C++ 面试知识点

BIGO

try_again_later的博客 478

DSP28335做FFT傅里叶变换

1. 看了一下例程,居然没有FFT的例程,难道这个DSP28335不能做FFT吗?对了C2000系列是有C2000 ware这个库的。方便很多,不过目前不确定在C5000上运行的FFT能直接迁移到DSP28335上行不?测试了一下,是可以的,因为都是用的math.h,下面的一些正弦函数基本一样的 2. 硬件简介,其中DSP28335和TLV320AIC23B之间使用I2C接口进行寄存器配置,...

weixin_30390075的博客 3331

工业相机图像格式深度解析:从Mono8到Mono12的选型与应用

本文深度解析工业相机黑白图像格式,重点对比Mono8、Mono10与Mono12的核心差异。文章从位深、动态范围和数据量等关键概念切入,详细阐述了不同格式的优缺点及适用场景,为工业视觉项目中的相机选型提供实战指南,帮助用户在精度、速度与成本间做出最优决策。

weixin_29207439的博客 262

c++ virtual function again

当决定调用哪个函数时,如果是虚函数,那么取决于指针所指向的对象的类型。如果是非虚函数,那么取决于指针的类型ISO/IEC 14882:2003 page 174[Note: the interpretation of the call of a virtual function depends on the type of the object for which it i

xutom2006的专栏 844

MTK6769平台Type-C充电全解析:从硬件管脚到PD协议实战(Android15环境)

本文深入解析了MTK6769平台在Android 15环境下Type-C充电的完整链路。从硬件管脚(特别是核心的CC引脚)功能与连接,到USB-PD协议报文抓取与实战分析,并结合MTK平台PD芯片驱动与充电IC驱动的软件框架,提供了从硬件设计到软件调试的系统性解决方案和常见问题排查案例。

ol78901234的博客 311

C++文件的读入与写出

一、头文件 #include <ofstream>//写文件类 #include <ifstream>//读文件类 #include <fstream>//同时读写(最常用) 二、声明文件对象 ofstream ofile("1.txt");//声明写文件对象并打开 ifstream ifile("1.txt");//声明读文件对象并打开 fstream fi...

qq_43417265的博客 1068

uni-app - 刘海屏(Iphone X)底部横杠(——)白色区域块(安全距离处更改颜色)解决方案

场景:因为要做无tabbar页面,所以在配置文件中取消底部导航栏。取消后,iPhoneX(刘海屏)底部就出现如下图所示白色安全区域问题:这个问题,是因为uni-app默认会为iPhoneX(刘海屏)留出安全距离,这个安全距离的背景色就是白色。所以,如果你将页面颜色设置为其他颜色,就会与默认白色冲突。有2个不同的解决方案(原生占位),虽然原理是一样,但使用的场景不同,请根据您的需求来采纳。

🏆 前端领域优质创作者 1万+

78.在 Vue3 中使用 OpenLayers 实现地图地点搜索定位功能

本文详细介绍了如何在 Vue3 中集成 OpenLayers,实现地图地点搜索和定位功能。Vue3 项目环境的搭建与依赖安装。使用语法实现地图初始化和控件集成。通过 OpenLayers 的 Popup 和 Geocoder 插件,实现地址搜索和定位。希望这篇博文能帮助你快速掌握 Vue3 与 OpenLayers 的集成技术。如果在使用过程中遇到问题,欢迎在评论区留言讨论,或者参考 OpenLayers 官方文档获得更多帮助。注意。

小彭的博客 1852

【笔记】C++ 多线程读入数据

差的好多,抓紧学了。 参考链接: std::istream::seekg https://blog.youkuaiyun.com/nirendao/article/details/88096195 1. 计算文件大小 std::ifstream的两个成员函数 tellg():返回输入流的当前位置,也就是下一个要读的字符距离首字符的偏移量。 istream& seekg(off, way),设置输入流...

秋叶红于二月花 4752

YOLO模型在STM32微控制器上的部署:1.98M参数如何塞进嵌入式设备?

<think>我们根据内容生成不超过150字的摘要。内容主要是关于YOLO模型在STM32微控制器上的部署,包括STM32N6 NPU、模型量化、工具链、开源方案和架构设计。摘要需要简洁概括主要点。 字数限制:≤150字。需要包含关键信息:STM32N6运行YOLO,困难,方案(NPU、INT8量化、工具链),性能(34 FPS 9.4mJ)。结尾可能提到开源和生态。 写中文摘要。注意不超过150字。</think>本文探讨YOLO模型在STM32微控制器上的部署。集成NPU的STM32N6搭配轻量化YOL

2601_95807009的博客 255

C++读入文件

转载自:(https://www.cnblogs.com/VVingerfly/p/4435898.html) 逐行读入 void readTxt(string file) { ifstream infile; infile.open(file.data()); //将文件流对象与文件连接起来 assert(infile....

qq_41996851的博客 2463

译码器Multisim电路仿真汇总——硬件工程师笔记

本文详细介绍了74LS139D和74LS138D两种TTL译码器的功能特点及应用。74LS139D是2线-4线译码器,具有低电平有效输出和使能控制功能,常用于地址译码和数据分配。74LS138D是3线-8线译码器,通过3位输入实现8路输出控制,广泛应用于微处理器系统。文中提供了两种芯片的引脚说明、真值表和典型应用电路,并附有硬件工程师笔试面试相关资源链接。这些基础知识对数字电路设计和硬件工程师面试准备具有重要参考价值。

XU157303764的博客 1261

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

C、C++一次将整个文件读入内存

@1.问题描述:         C和C++的初学者经常采用一行一行读入文件的办法对文件数据进行处理。但是经常会有一些情况需要将一个文件整体一次读入内存处理。而C和C++库中并没有提供直接一次读入文件全部数据的函数。 @2.解决方法:         目前给出C和C

Cashey1991的专栏 7万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

C++ 从键盘、文件读入

Background Info EOF是C语言中为了区分有效数据和输入结束符的。 EOF的输入由系统锁定,windows下是 ctrl+z,linux/unix下是 ctrl+d. 在 C++ 中,输入输出流被定义为类。C++ 的I/O库中的类称为流类(stream class)。 用流类定义的对象称为流对象。   输入和输出是数据传送的过程,数据如流水一样从一处流向另一处。C++ 形象地将此过...

m0_37891226的博客 2184

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【OpenGL】CPP读取STL文件 含读入优化 二进制 ASCII

基于C++语言,介绍了两种格式(二进制、ASCII)的STL文件的读取,提取出STL文件中三角面的顶点坐标,方便后续通过OpenGL进行显示。且通过先读入内存缓冲区的方式进行了读入优化。

Room221技术笔记 2053

C++读入写出字符串到txt文档

读入 while 那里会循环11次,每读入一次就是读入一行/以空格分隔的一个字符串; 将同一根目录下文件名为movie_information.txt的文件打开,将里面的内容一行行赋值给in后的变量。 //读入信息 ifstream in("movie_information.txt",ios::in); if(!in.is_open())//若无文件,提高容错率 { cout<<"文件打开失败。"<<endl; exit(1); } //将数据存入结构体 int i=0; w

karshey的博客 1217

C++文件读入和写出总结笔记

一、写文件 #include <fstream> ofstream ofs;//创建流对象 ofs.open(path,打开方式);//指定路径和打开方式 //打开方式: // ios::in 读文件打开 // ios::out 写文件打开 // ios::ate 从文件尾打开 // ios::app 追加方式打开 // ios::trunc 如已有文件,先删除文件 // ios::binary 二进制方式 // ios::nocreate 打开文件时,如果文件不存在,不创建文件 // ios:

Nancy_fairy的博客 357

C++的读入和输出在文件和操作窗口间的切换【freopen和ifstream、ofstream】

在调试过程中,经常需要使用文件读入和文件输入,有时还需在文件和窗口间切换读入和输出。 以下总结freopen和ifstrem的用法。 freopen语句 文件读入语句为: freopen("abc.in","r",stdin); .... fclose(stdin); 上述语句 freopen("abc.in","r",stdin); 的作用是把标准输入流重定向到一个名为abc.in的文件中,这样在用scanf或是用cin输入时便不会从标准输入流读取数据(也就是不会从C++操作窗口

马小超 1977
上一篇: 有趣的题目系列一:实现具有最大值、最小值、中间值的栈和队列
下一篇: 离开博客的日子
louis9212
博客等级 码龄14年 8粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值