gpt4 book ai didi

C++ cout char 'return' 文件中的字符出现两次

转载 作者:行者123 更新时间:2023-11-28 05:52:02 25 4
gpt4 key购买 nike

我正在尝试创建一个程序,根据纳粹德国的 Enigma 机器的工作原理来加密文件,但没有缺陷 :P。

我有一个函数可以在文件中的 n 点获取一个字符,但是当它返回一个返回字符并且我 cout << 它时,就像它按了两次回车一样。IE 如果我从文件中的 i++ 点循环计算,则终端中的各个行显示为分开的

通过更多的返回

比一个。

函数如下:

char charN(string pathOf, int pointIn){
char r = NULL;
// NULL so I can tell when it doesn't return a character.
int sizeOf; //to store the found size of the file.
ifstream cf; //to store the Character Found.
ifstream siz; //used later to get the size of the file

siz.open(pathOf.c_str());

siz.seekg(0, std::ios::end);
sizeOf = siz.tellg(); // these get the length of the file and put it in sizeOf.

cf.open(pathOf.c_str());
if(cf.is_open() && pointIn < sizeOf){ //if not open, or if the character to get is farther out than the size of the file, let the function return the error condition: 'NULL'.
cf.seekg(pointIn); // move to the point in the file where the character should be, get it, and get out.
cf.get(r);
cf.close();
}
return r;
}

如果我使用 cout << '\n' 它可以正常工作,但是从文件返回和 '\n' 有什么不同?还是我还缺少其他东西?我一直在谷歌搜索,但我找不到任何与我的问题相似的东西,在此先感谢。

如果重要的话,我正在使用 Code::Blocks 13.12 作为我的编译器。

最佳答案

这是在 Windows 机器上吗?在 Windows 中,文本文件中的新行由\r\n 表示。

  • \r = 回车
  • \n = 换行符

您可能正在分别计算每一个,并且输出缓冲区正在为每个创建一个新行。

关于C++ cout char 'return' 文件中的字符出现两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35028900/

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