首页 > 编程语言 >c++ 按行读取文件、最好理解、最安全、最不容易出错的方法:

c++ 按行读取文件、最好理解、最安全、最不容易出错的方法:

时间:2022-10-27 22:15:38浏览次数:38  
标签:文件 Java 读取 C++ c++ 按行 new

注意、必须判断一下打开文件是否成功、不然如果输入一个不存在的文件名、程序会陷入死循环:

类比 Java 的文件操作、Java的InputStream需要嵌套几层、需要new出实际的对象

而 C++ 可以直接在栈上写变量、打开以后直接用就行了(C++的构造函数的调用不仅限于 new 对象时!) 

 

 其实打个断点就能知道content里有什么内容、可以发现getline()的时候会自动给后面补上 /0 、也就是说最后形成的是一个正规的 C 字符串:

假如一行内容特别长会怎么样?(本质上就是两个换行符之间相距太远)

新建一个文本文件、显然让一行的数量超过 128:

 

 然后 在win 11 下直接复制文件地址、运行程序、发现人家还是很安全的加了一个 \0 、这就说明超出的部分肯定被截断了、程序员应该自己用个更大的缓冲区:

 

标签:文件,Java,读取,C++,c++,按行,new
From: https://www.cnblogs.com/gs590/p/16834122.html

相关文章

  • C++对象模型:g++的实现(三)
    这篇讲一下《深度探索C++对象模型》第三章最后没总结的一部分,就是类的成员变量指针。这里所谓类的成员变量指针就是指绑定某个类的某个成员变量的指针,而不是某个对象的某......
  • Modern C++ 智能指针 shared_ptr
    现代C++为了解决内存泄露以及资源回收等问题,引入了智能指针的概念。在日常的C++实践中也是高频使用。本文是在实践过程中,对现代C++中的智能指针进行的一个稍微全面的总结......
  • Python,C++中点云 .las转.pcd
    (39条消息)Python,C++中点云.las转.pcd_程序媛一枚~的博客-CSDN博客1.Python.las转.pcd#-*-coding:utf-8-*-#读取las文件并保留为XYZI格式的pcd文件import......
  • 【Matlab】 读取文件各种方法
    本技术支持指南主要处理:ASCII,binary,andMATfiles.要得到MATLAB中可用来读写各种文件格式的完全函数列表,可以键入以下命令:helpiofunMATLAB中有两种文件I/O程序:highle......
  • 如何在CMake中启用C++ 17
    如何在CMake中启用C++17MiP*_*MiP  38 c++ cmake visual-studio c++17 我正在使用VS15.3,它支持集成的CMake3.8.如何在不为每个特定编译器编写标志的情况下定......
  • UE4 C++实现第三人称角色基本功能
    首先基于Character创建一个角色类,在头文件为其添加弹簧臂和摄像机组件UPROPERTY(VisibleAnywhere,Category="Comp")classUCameraComponent*CameraComp......
  • 【 C++ 】如何查看项目中使用的c++版本
    【C++】如何查看项目中使用的c++版本Francesca_upper于2022-07-0610:15:58发布1847收藏2分类专栏:C++文章标签:c++开发语言版权C++专栏收录该内容1篇文章0......
  • C++对象模型:g++实现(二)
    上一篇博客《C++对象模型:g++实现(一)》用我的理解总结了在无继承体系下g++实现的C++对象的内存布局,这篇就来总结一下在有继承情况下的C++对象的内存布局。有继承情况下的C++......
  • *PAT_甲级_1053 Path of Equal Weight (30分) (C++)【数组排序/DFS】
    目录​​1,题目描述​​​​ 题目大意​​​​输入​​​​输出​​​​2,思路​​​​数据结构 ​​​​如何排序 ​​​​如何设计DFS算法​​​​3,心路历程​​​​4,代......
  • C++ Const Pointer
    Compaction*constcompaction;//即该指针声明后不能再指向其他地址这样记:const后边的内容为“常量”。constintptr;//ptr为常量,初始化后不可更改int*constpt......