我基本上試圖顛倒文本文件的內容。當我運行這個代碼時,沒有任何反應。代碼:讀取和寫入文件在C++中不起作用
getArguments();
stringstream ss;
ss << argument;
string fileName;
ss >> fileName;
fstream fileToReverse(fileName);
if (fileToReverse.is_open()) {
send(sock, "[*] Contents is being written to string ... ", strlen("\n[*] Contents is being written to string ... "), 0);
string line;
string contentsOfFile;
while (getline(fileToReverse, line)) {
contentsOfFile.append(line);
line = "\0";
}
send(sock, "done\n[*] File is being reversed ... ", strlen("done\n[*] File is being reversed ... "), 0);
string reversedText(contentsOfFile.length(), ' ');
int i;
int j;
for(i=0,j=contentsOfFile.length()-1;i<contentsOfFile.length();i++,j--) {
reversedText[i] = contentsOfFile[j];
}
contentsOfFile = "\0";
fileToReverse << reversedText;
fileToReverse.close();
send(sock, "done\n", strlen("done\n"), 0);
}
fileName是從用戶輸入創建的,我知道該文件存在。它只是不會對文件做任何事情。如果任何人有任何他們想分享的想法,那就太棒了。
UPDATE:
我現在可以寫reversedText的文件,但我怎麼可以刪除所有的文件內容是什麼?
您是否嘗試調試它? –
是的。它看起來像所有的功能正在運行,所有的變量正在創建,並沒有任何警告編譯。 – jamespick
當您嘗試寫入文件時,文件末尾處於錯誤狀態。我懷疑在寫入之前需要'fileToReverse.clear()'。您可能還想要尋找文件的開頭... –