C++文件读取基础教程_C++文件输入输出初接触

C++读取文件核心是ifstream,需包含头文件并检查.open()成功与否;常用getline按行读取,>>适合格式规整数据;对象析构自动关闭文件,必要时可手动close。

用C++读取文件,核心是掌握ifstream(输入文件流)的用法。它属于头文件,本质是把磁盘上的文件“连”到程序里,像读普通输入一样逐行或逐字符处理。

打开文件前先检查是否成功

不能假设文件一定存在或路径一定正确。创建ifstream对象后,要用.is_open()或直接判断流状态:

  • ifstream fin("data.txt"); if (!fin) { cout
  • 常见失败原因:路径写错(比如少写了子目录)、文件被占用、权限不足、中文路径未用UTF-8或宽字符处理

按行读取最常用也最稳妥

getline(fin, line)一次读一整行,自动丢掉换行符,不会因空格或制表符中断:

  • string line; while (getline(fin, line)) { cout
  • 注意:getline返回的是流对象本身,非bool,但能隐式转为bool判断是否读到末尾或出错
  • 如果文件最后一行没换行符,getline仍能正常读取该行

读数字或单词可用重载的>>操作符

适合格式规整的文本,比如每行一个整数,或空格分隔的多个数值:

  • int x; while (fin >> x) { cout
  • 缺点:遇到非数字字符(如字母、逗号)会停止,并把错误字符留在缓冲区,后续读取可能出乱;空白符(空格、换行等)全被跳过,无法区分换行和空格
  • 建议仅用于简单测试或已知格式干净的数据

别忘了关闭文件(或依赖自动析构)

ifstream对象离开作用域会自动关闭,一般不用手动调.close();但若需在中途清空缓冲、重用流对象,或想明确控制关闭时机,可调用:

  • fin.close(); —— 关闭后再次>>getline会失败
  • 关闭后可重新用.open("another.txt")打开别的文件

基本上就这些。不复杂,但容易忽略路径和错误检查,实际写代码时多加两行判断,能省下大半调试时间。