#include <iostream>
#include <fstream>
#include <vector>
#include <iterator>
using namespace std;
int main() {
vector< vector<char> > MyVector;
ifstream infile("text.txt", ifstream::binary);
ofstream outfile("new.txt", ofstream::binary);
if (infile) {
// get length of file:
infile.seekg(0, infile.end);
int length = infile.tellg();
infile.seekg(0, infile.beg);
char * buffer = new char[length];
cout << "Reading " << length << " characters... ";
// read data as a block:
infile.read(buffer, length);
if (infile)
cout << "all characters read successfully.";
else
cout << "error: only " << infile.gcount() << " could be read";
MyVector.resize(1);
for (int i = 0, j = 0; i < length; i++) {
if (buffer[i] == ' ' && '\n') {
j++;
MyVector.resize(j + 1);
MyVector[j].push_back(0x0D);
MyVector[j].push_back(0x0A);
}
else {
MyVector[i].push_back(buffer[i]);
}
}
for (int i = 0; i < MyVector.size(); i++) {
outfile.write(&MyVector[i][], 1);
}
infile.close();
outfile.close();
// ...buffer contains the entire file...
getchar();
delete[] buffer;
}
return 0;
}
텍스트 파일을 벡터로 읽은 다음 새 파일을 만들어서 약간 수정합니다.범위 밖의 벡터 아래 첨자
인쇄 방법을 잘 모르겠습니다. 너무 다른 곳에서 잘못된
for (int i = 0, j = 0; i < MyVector.size(); i++) {
outfile.write(&MyVector[i][j], 1);
}
아마 뭔가 :
나는이 루프 매우에 문제가있는 것 같아요.
은 지금 내가 받고 있어요 : "벡터 첨자 범위 오류 중 ..."
무엇을 수정하려고합니까? 'If (buffer [i] == ''&& '\ n')'는 항상 참이고, MyVector.size()는 각각의 길이가 아닌'MyVector'에 들어있는 벡터의 수입니다. 그 벡터들. –
.txt 파일에서 나는 임의의 단어를 얻었다. 새 텍스트 파일에서 각 단어를 새 줄로 시작하려고합니다. – JuriR
멋지지만 내 질문에 전혀 답하지 않았습니다. 어떤 수정 작업을 수행하려고합니까? 코드에서 분명하지 않습니다. –