我試圖根據納粹德國的Enigma機器如何工作來創建加密文件的程序,但沒有缺陷:P。C++從文件中返回字符「返回」字符出現兩次
我有一個函數可以獲取文件中第n個點的一個字符,但是當它返回一個返回字符時,它就像輸入兩次一樣。 IE如果我循環從i COUT-ING在文件++個終端中的各條線出現由更多的回報
多於一個的分離
。
這裏的功能:
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' 回報不同? 還是有什麼我失蹤? 我一直在Google上搜索,但我無法找到任何遠程類似於我的問題,在此先感謝。
我使用Code :: Blocks 13.12作爲我的編譯器,如果這很重要。
NULL不起作用無效字符。它作爲無效指針工作。 –
您正在使用一個,但兩個開閉週期和兩個seekg操作來從文件中獲取單個字符。這不是打算如何使用文件。 –
我需要一次使用單個角色來處理謎題機器的工作原理。 –