文件IO,路径,在Windows和Linux的异同

C++ 文件IO 路径 Windows Linux
测试用系统及编译器:
windows:windows10 & C-Free
Linux:kail & g++

代码

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    ifstream fin;
    ofstream fout;
    string path;

    int a, b;
    
    fin.open(filename.in);
    fin >> a >> b;
    cout << "a:" << a << "b:" << b << endl;
    fin.close();
    
    fout.open(filename.out);
    fout << a << " " << b;
    fout.close();
    
    return 0;
}

例子0x0

path:filename.dat

系统
Windows 正常 完全正常
Linux 正常 完全正常

例子0x1(唯一出岔子的地方)

windows式路径
path:.\filename.dat

系统
Windows 正常 完全正常
Linux 乱码 无输出

shell

# ./fio
a:32722b:1336815288

例子0x2

linux式路径
path:./filename.dat

系统
Windows 正常! 完全正常
Linux 正常 完全正常

总结和感想

至少在win10中,三种路径都是可用的。而linux中,使用windows式的路径会出错。所以如果数据文件和程序在同一目录,还是用第一种“万金油”路径格式。不然,最好用linux格式(oier的泪),想想在noip省赛因为这个翻车我的心就痛。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容