博客
关于我
C++:while(getline())函数
阅读量:486 次
发布时间:2019-03-06

本文共 1297 字,大约阅读时间需要 4 分钟。

在处理文件记录时,正确使用 getline() 函数可以确保逐行读取记录。以下是优化后的步骤:

  • 使用逐行读取:使用 getline(dataFile, input) 读取完整的记录直到换行符结尾。

    string input;while (getline(dataFile, input)) {  // 处理每一行的输入}
  • 处理字段分隔符:在每一行中,使用 find('$') 找到 $ 符号的位置,分割字段:

    string name = input.substr(0, pos);input.erase(0, pos + 1); // 迷惑符保留string address = input.substr(0, next_pos);input.erase(0, next_pos + 1); // 保留下一个 $ 符号

    注意:确保 pos 和下一个 $ 符号的位置正确,以被分割。

  • 处理后续字段:继续找到下一个 $ 符号来分割城市等信息。

  • 处理换行符:在逐行读取时,确保 dataFile.get() 读取留下的换行符,以防止缓冲区溢出。

  • 示例代码

    #include 
    #include
    #include
    using namespace std;int main() { string input; fstream dataFile("addresses.txt", ios::in); if (!dataFile.is_open()) { cout << "Error opening file." << endl; return 0; } while (getline(dataFile, input)) { // 处理每一行 size_t pos = input.find('$'); if (pos == string::npos) break; string name = input.substr(0, pos); input.erase(0, pos + 1); // 舍弃第一个 $, 保留记录中的其他 $ size_t next_pos = input.find('$', pos + 2); if (next_pos == string::npos) { cout << name << " '" << address << "'..." << endl; } else { // 读取后续字段 address = input.substr(pos + 2, next_pos - (pos + 2)); // 继续处理更多字段 // ... } } dataFile.close(); return 0;}

    注意事项

    • 每读取一个完整记录后,循环自动移动到下一行。
    • 保留 $ 符号用于内部字段分隔。
    • 确保处理多个 $ 符号才能分割所有字段。

    通过这种方法,可以正确处理每行记录,并提取相应的字段信息。

    转载地址:http://wemdz.baihongyu.com/

    你可能感兴趣的文章
    Opencv Sift和Surf特征实现图像无缝拼接生成全景图像
    查看>>
    opencv SVM分类Demo
    查看>>
    OpenCV VideoCapture.get()参数详解
    查看>>
    opencv videocapture读取视频cap.isOpened 输出总是false
    查看>>
    opencv waitKey() 函数理解及应用
    查看>>
    OpenCV 中的图像转换
    查看>>
    OpenCV 人脸识别 C++实例代码
    查看>>
    OpenCV 在 Linux 上的 python 与 anaconda 无法正常工作.收到未实现 cv2.imshow() 的错误
    查看>>
    Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)上
    查看>>
    opencv 模板匹配, 已解决模板过大程序不工作的bug
    查看>>
    OpenCV 错误:(-215)size.width>0 &&函数imshow中的size.height>0
    查看>>
    opencv&Python——多种边缘检测
    查看>>
    opencv&python——高通滤波器和低通滤波器
    查看>>
    OpenCV+Python识别车牌和字符分割的实现
    查看>>
    OpenCV-Python接口、cv和cv2的性能比较
    查看>>
    OpenCV/Python/dlib眨眼检测
    查看>>
    opencv1-加载、修改、保存图像
    查看>>
    opencv10-形态学操作
    查看>>
    opencv11-提取水平直线和垂直直线
    查看>>
    opencv12-图像金字塔
    查看>>