看长风破浪 2022-05-27 17:06 采纳率: 75%
浏览 162
已结题

读取txt文件时文件的空格无法读取

C++读取TXT文件,TXT内留有空格,但是输出后没有空格,请问如何解决(希望实际运行的效果和TXT原文件效果一样,在easyx图形界面显示)
有关读文件的代码如下:

inline void before::readFile(const std::string& fileName)
{
    fstream read(fileName, ios::in);
    if (!read.is_open())
        return;
    //读取表头
    char buf[1024] = { 0 };
    read.getline(buf, 1024);
    m_header = buf;
    outtextxy(100, 100, buf);
    cout << buf << endl;
    int m=100, n=50;
    //读取数据
    while (!read.eof())
    {
        n += 50;
        char data[1024] = { 0 };
        read.getline(data, 1024);
        //跳过空行
        if (strlen(data) == 0)break;
        Data dt;
        stringstream ss(data);
        ss >> dt.number >> dt.name >>  dt.chuliqi >>
            dt.dianchi >> dt.price>>dt.star>>dt.special;
        vec_dt.push_back(dt);
        setbkmode(TRANSPARENT);
        settextstyle(30, 0, "微软雅黑");
        settextcolor(RED);
        outtextxy(100, 70, buf);
        outtextxy(m, n,data);
    }
    read.close();
}

问题截图
TXT文件

img


实际运行图

img

  • 写回答

3条回答 默认 最新

  • 赵4老师 2022-05-27 17:17
    关注
    char ln[1000];
    sprintf(ln,"%6s%10s%12s%6s%16s%6s%12s",
    dt.number.c_str(),dt.name.c_str(),dt.chuliqi.c_str(),dt.dianchi.c_str(),dt.price.c_str(),dt.star.c_str(),dt.special.c_str());
    outtextxy(m, n,ln);
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
  • 吕布辕门 后端领域新星创作者 2022-05-27 17:13
    关注

    这样可以

    
    ifstream readFile("文件存储地址");
          char temp[1024] = {0};
    
    //      readFile >> temp;     //遇到空格输出停止,空格后的内容无法输出,'\0'是截止符
    
          readFile.getline(temp, 100);   //按行读取
    
          cout << temp << endl;
    
          readFile .close();
    

    img

    评论 编辑记录
  • 萧木易 2022-05-27 17:13
    关注

    文件要读取csv更方便

     

    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月4日
  • 已采纳回答 5月27日
  • 修改了问题 5月27日
  • 创建了问题 5月27日

悬赏问题

  • ¥15 MAX98357A 和stm32通讯后声音异常
  • ¥15 自学计算机组成原理前要学哪些书
  • ¥15 如何仅使用递归法改变链表顺序
  • ¥30 频率与占空比均可调的方波发生器
  • ¥15 VB6.0中PICTUREBOX加载本地图片无法显示
  • ¥100 关于游戏app session获取的问题
  • ¥15 爬虫程序爬取TTGChina网站文章代码
  • ¥35 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。
  • ¥15 如何用下图方法在AMESim中搭建离心泵模型
  • ¥15 C#连接服务器,请求时报Ssl/Tsl未能建立安全通道