gpt4 book ai didi

c++ - 为什么一个空行占用两个字节?

转载 作者:行者123 更新时间:2023-12-01 14:05:24 25 4
gpt4 key购买 nike

我是 C++ 的新手。我想计算文本文件末尾的空行。但现在我遇到了一个问题。文本文件的内容如下:

测试.txt

1
2
blank line

代码是:
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
ifstream inFile("test.txt",ios::in);
if (!inFile.good())
{
cout << "error" << endl;
}

inFile.clear();
inFile.seekg(-1, ios::end);
char a;
inFile.get(a);
cout << "symbol for a: " << a << "ASCII: " << (int)a << endl;

inFile.clear();
inFile.seekg(-2, ios::end);
char b;
inFile.get(b);
cout << "symbol for b: " << b << "ASCII: " << (int)b << endl;
}

结果是:
symbol for a: // a stands for the last character which is '\n'
ASCII: 10
symbol for b: // b stands for the second last character, which should be "2"
ASCII: 10

在上面显示的结果中, b 的值也是 \n .为什么?

最佳答案

在 Windows 上,换行符生成两个 ascii 字符“\r\n”(回车、换行)[10,13]
在十六进制编辑器中打开任何源代码,您将看到每行末尾的两个字符。

关于c++ - 为什么一个空行占用两个字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61168181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com