さて、一度に 1 つのチャプターで読みたい巨大なファイルがあります。章は で区切られ'$'
ます。私はまだ C++ にあまり慣れていないので、C/C++ で期待されるように、章で読むようなものを作成しました。
#include <nds.h>
#include <stdio.h>
#include <string>
#include <vector>
#include <sstream>
int dataFileLoc = 7;
std::string fileReader(){
FILE * dataFile;
std::string chapterBuffer = "";
const int buffersize = 1024;
char charBuffer[buffersize];
bool foundEnd = false;
dataFile = fopen("xc3_.tsc", "rt");//open data file
fseek(dataFile,dataFileLoc,SEEK_SET);
while(!foundEnd){
fread(charBuffer,1,buffersize,dataFile);
for(int i=1; i<buffersize; i++){
if(charBuffer[i] == '$'){
foundEnd = true;
charBuffer[i] = '\0';
dataFileLoc = ftell(dataFile)-(buffersize-i);
break;//break to spare some time
}
}
chapterBuffer.append(charBuffer);
}
fclose(dataFile);//done with the file for now.
checkerTemp(chapterBuffer);
return chapterBuffer;
}
結果は問題ないはずです。私はまだファイルの終わりに達したことがありません。そのため、そこで失敗する可能性があります。ただし、一見ランダムに見えます (一貫性がありますが、一見ランダムな場所にあります)。失敗すると、文字列にジャンク データ (8 文字相当) が挿入され、その後に通常のデータが再び挿入されます。
誰かがこれを引き起こす可能性のある考えを持っていますか、または誰かがこれを行うためのより適切なC++の方法を持っていますか? 文字列リーダーで何か?
前もって感謝します、
-Smileynator