2015-05-18 6 views
-3

Я закодировал программу, которая может загрузить один текстовый файл, может решить, как долго каждое слово и может писать txt-файлы в зависимости от длины слов. Но когда я запускаю программу, новые текстовые файлы всегда заполняются одним словом (каждое новое слово с уже существующим текстовым файлом для его длины просто переопределяет текстовый файл)C++ Как добавить строку в существующий текстовый файл без его перезаписи?

Начальный текстовый файл выглядит так: :

http://i.stack.imgur.com/WBaRf.png

Мои новые создали текстовые файлы (по имени их длины, например: 7.txt) после того, как я переехала машина программка:

http://i.stack.imgur.com/6QKgE.png

Мой код:

#include <iostream> 
#include <fstream> 
#include <sstream> 

using namespace std; 

int main(int argc, char *argv[]) 
{ 
    char  filename[128]; 
    ifstream file; 
    char  line[100]; 

cout << "Input filename: " << flush; 
cin.getline(filename, 127); 

file.open(filename, ios::in); 

if (file.good()) 
{ 
    file.seekg(0L, ios::beg); 
    int number = 0; 
    while (!file.eof()) 
    { 
     file.getline(line, 100); 
     stringstream stream; 
     stream << line; 
     number++; 
     cout <<"Number: "<< number << " length: " << stream.str().length() << " " << line << endl; 
     std::stringstream sstm; 
     int laenge = stream.str().length(); 
     string txt = ".txt"; 
     sstm << laenge << txt; 
     string result = sstm.str(); 
     std::ofstream outFile(result); 
     outFile << line << endl; 
     outFile.close(); 
    } 
} 
else 
{ 
    cout << "File not found" << endl; 
} 

while (true) 
{ 
}; 

return 0; 

}

Моя цель состоит в том, что я отсортировали целые слова в файл свои файлы, единственная проблема заключается в том, что они перезаписать ... Как сам себе я могу избавиться от этого?

+0

было бы хорошей идеей, чтобы показать нам код вы написали до сих пор ... – Christophe

+0

Волшебный 8-мя мяч говорит, что ошибка находится на линии 42 или 73, но, не видя ни одного из вашего исходного кода, он не может быть уверен, что. –

+0

, если вы хотите добавить в конец файла, вам нужно открыть его для добавления, для любого другого случая, который вы должны открыть для чтения и записи, но затем он добавляет без сдвига, просто пробегите по существующим словам. – SHR

ответ

0

Если вы не хотите, чтобы перезаписать содержимое файла, вы можете открыть файл и указать, что вы хотите добавить в файл:

std::ofstream outFile(result, ios::app); 
          // ^^^^^^^^ 
+1

Спасибо :) отлично работал –

Смежные вопросы