我试图根据纳粹德国的Enigma机器如何工作来创建一个加密文件的程序,但没有缺陷:P。
我有一个函数可以在文件的n点获取一个字符,但是当它返回一个返回字符并且我cout<<它,就像它进入两次。 IE如果我从文件中的i ++点循环cout,则终端中的各行显示为分开
更多回报
而不是一个。
这里的功能是:
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&lt;&lt; &#39; \ n&#39;,但是从文件和&#39; \ n&#39 ;?返回的不同之处 或者还有其他我想念的东西? 我一直在谷歌搜索,但我提前找不到与我的问题类似的任何东西,提前谢谢。
如果重要的话,我使用Code :: Blocks 13.12作为我的编译器。
答案 0 :(得分:1)
这是在Windows机器上吗?在Windows中,文本文件中的新行由\ r \ n表示。
您可能会分别对每个人进行couting,并且输出缓冲区正在为每个人创建一个新行。