nor1take 2022-06-04 14:34 采纳率: 57.1%
浏览 36

C++读txt文件的相关问题

我是使用逐字符去读文件的。代码如下:

    ifstream ifs;
    ifs.open(fileName, ios::in);

    if (!ifs.is_open())
    {
        cout << "文件打开失败" << endl;
        return false;
    }

    char c;
    while ((c = ifs.get()) != EOF)
    {
        cout << c;
    }

    ifs.close();

但是,我发现一个问题:

如果txt文件里是中文,保持源代码不变,控制台是能正常输出文件的中文内容。
但是,将cout << c; 换成 cout << c << endl; 就会发现控制台不能输出中文了。

所以,读取中文文件时,c = ifs.get(),这里的c读到的到底是什么?

我又试了一个如下两个代码:

cout << '我'; //输出:52946
cout <<  "我"; //输出:我

从输出结果看,好像一个中文字不是一个字符

  • 写回答

2条回答 默认 最新

  • 浪客 2022-06-04 14:48
    关注

    一个中文字占2个char空间。

    评论

报告相同问题?

问题事件

  • 创建了问题 6月4日