You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vitis Xilinx IDE中C++ fstream写入后文件为空问题求助

解决Vitis中fstream写入文件为空但程序能读取的问题

以下是针对该问题的排查与解决方法:

  • 确认文件实际生成路径
    Vitis默认运行工作目录并非源码所在目录,而是项目下的Debug或Release编译输出文件夹。你手动查看的是源码目录下的results.txt,但程序实际写入的是编译目录中的对应文件,直接打开项目的Debug/Release文件夹即可找到正确文件。

  • 显式指定文件路径
    若想让文件生成在源码目录,可在open时使用绝对路径,示例:

    strm_out.open("/home/username/your_project/src/results.txt");
    

    也可根据Vitis工作目录调整相对路径,比如源码在src子目录、工作目录为项目根目录时,使用src/results.txt作为路径。

  • 验证写入逻辑是否完整执行
    虽然代码中调用了close(),但如果程序在写入循环或close()前异常退出,会导致文件未正确写入磁盘。可在close()后添加打印语句,确认程序执行到该步骤:

    strm_out.close();
    cout << "文件写入完成并关闭" << endl;
    
  • 调整文件缓冲设置
    部分编译优化可能影响文件写入的缓冲策略,可尝试在打开文件时指定明确的模式:

    strm_out.open("results.txt", ios::out | ios::trunc);
    

    或者将flush()替换为sync(),确保数据立即写入磁盘:

    strm_out.sync();
    

内容的提问来源于stack exchange,提问作者A.A.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 11:00:02