私のコードには少し問題があります。私のコードでは、。、:および;を除くすべての英数字以外の文字を削除する必要があります。新しい行にドットで終わる行をソートします。だから、のようなもの:ドットで終わるソート行(。)
First, some characters, legal and illegal:)(=8skf-=&. This should be on a separate line. This too.
はなる:
今First, some characters, legal and illegal: 8skf.
This should be on a separate line.
This too.
、非英数字は完璧に動作ストリップコードの最初の部分。ソート部はあるポイントまで動作します。だから、私のコードでは、上記の行は、実際には次のようになります。
First, some characters, legal and illegal: 8skf.
This should be on a separate line. This too.
私は、これは新しいラインで、私のコードは、新しい行になる過程でそれを読むことができないためであると理解しています。コードは次のとおりです。
int writeFinalv(string path) {
readTempFiles(path.c_str());
string line;
string nline;
int start;
int lnth;
ifstream temp("temp.txt");
ofstream final;
int length;
final.open(path.c_str(), ios::out | ios::trunc);
if(temp.is_open()) {
while(getline(temp, line)) {
length = line.length();
for(int i = 0; i < length; i++) {
if(line[i] == '.') {
if(line[i+1] == ' ') {
nline = line.substr(0, (i+2));
}
else {
nline = line.substr(0, (i+1));
}
final << nline << "\n";
start = line.find(nline);
lnth = nline.length();
line.erase(start, lnth);
}
}
}
}
else {
error = true;
}
return 0;
}
私のコードでは、まず、最初のファイルを読み込み、関数を呼び出すことによって動作し、不正な文字でそれを取り除き、一時ファイルに書き込みます。次に、一時ファイルを読み込み、ドットを見つけて、最初のファイルに切り捨てた後に新しい行を書き出します。 ありがとうございます。
あなたの質問は何ですか? –