m0_56884507 2021-07-16 10:13 采纳率: 50%
浏览 14
已采纳

C语言向文件输入信息的空格与已存在文件的空格不一致,怎么矫正空格

比如我原来输入的信息每个信息之间都是空两格的,我输入的时候是空一格或者是三个,输入进去后怎么矫正空格啊?

  • 写回答

1条回答 默认 最新

  • qfl_sdu 2021-07-16 10:21
    关注

    输入进去后矫正?
    那基本用不着写代码了,数据量小的话手动修改就可以了,数据量大的可以写个代码统一处理一下。
    代码矫正方法:
    1.逐行读取文件,逐行解析,因为你的信息之间有一个空格的,也有两个或三个空格的,这就需要写一个字符串分割函数,用一个空格进行分割,分割出来的字符串如果只包含空格就丢弃,剩下的就是需要的信息。
    字符串分割的函数如下:(使用了vector)

    //遇到ch即将字符串分割成小字符串
    void SplitStr(std::string pStr, char ch,std::vector<std::string>& vReturn)
    {
        int nStartPos=0;
        int nEndPos=0;
        string tmp;
        while((nEndPos = pStr.find(ch,nStartPos))> 0)
        {
            tmp = pStr.substr(nStartPos,nEndPos - nStartPos);
            if(!tmp.empty() && tmp.compare(" ")!=0)
                vReturn.push_back(tmp);
            
            nStartPos = nEndPos+1;
        }
        nEndPos=pStr.find('\0',0);
        pStr.substr(nStartPos,nEndPos-nStartPos);
        if(!tmp.empty() && tmp.compare(" ")!=0)
            vReturn.push_back(tmp);
    }
    
    

    2.每行解析出来的数据按照固定格式重新写入文件。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 7月16日
  • 创建了问题 7月16日

悬赏问题

  • ¥15 wannier复现图像时berry曲率极值点与高对称点严重偏移
  • ¥15 利用决策森林为什么会出现这样·的问题(关键词-情感分析)
  • ¥15 DispatcherServlet.noHandlerFound No mapping found for HTTP request with URI[/untitled30_war_e
  • ¥15 使用deepspeed训练,发现想要训练的参数没有梯度
  • ¥15 寻找一块做为智能割草机的驱动板(标签-stm32|关键词-m3)
  • ¥15 信息管理系统的查找和排序
  • ¥15 基于STM32,电机驱动模块为L298N,四路运放电磁传感器,三轮智能小车电磁组电磁循迹(两个电机,一个万向轮),怎么用读取的电磁传感器信号表示小车所在的位置
  • ¥15 如何解决y_true和y_predict数据类型不匹配的问题(相关搜索:机器学习)
  • ¥15 PB中矩阵文本型数据的总计问题。
  • ¥15 MATLAB卫星二体模型仿真