Форум программистов, компьютерный форум CyberForum.ru

Дописывание в текстовый файл - C++

Восстановить пароль Регистрация
 
Sereb
0 / 0 / 0
Регистрация: 16.10.2012
Сообщений: 3
22.10.2012, 21:07     Дописывание в текстовый файл #1
Пытаюсь написать программу которая из одного текстового файла считывает слова в связный список , а потом дописывает в другой файл элементы этого списка. Работаю с потоками , при попытке установлении флажков ios::app или ios::ate при открытии файла , куда нужно дописывать в результате получаю пустой файл.
Класс связного списка , с методом WriteList который записывает связный список в файл(без флажков все работает , но стирает все что было в файле , а необходимо именно дописывание)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
struct HashWord { string name, path ;int value; HashWord *next; };
class HashList
{
private:
HashWord *first, *last;
public:
int ListValue;
HashList();
HashList(string name,string path,int value);
~HashList();
void WriteList(HashList list);
void AddToList(string name,string path,int value);
void ShowValue (HashList list);
};
 
HashList::HashList()
{ first=last=NULL;}
HashList::~HashList()
{}
void HashList::WriteList(HashList list)
{ fstream v;
string resu;
HashWord * current;
current=first;
  v.open("res.txt",ios::ate);
  if (!v) {resu="Error";  }
if(last==NULL)   {v<<"Empty";}
else
{while (current!=last->next)  {
v<<current->name<<"|"<<current->value<<"->";
current=current->next;
}
}
v<<"End of list";
}
void HashList::AddToList(string name,string path,int value)
{HashWord *temp = new HashWord;
if (temp==NULL){ return ;}
if (last==NULL) {
temp->name=name;
temp->path=path;
temp->value=value;
first=temp;
last=temp;
}
else {
temp->name=name;
temp->path=path;
temp->value=value;
last->next=temp;
last=temp;
}
return;
}
void HashList::ShowValue(HashList list)
{
  if (first==NULL) ListValue=0;
  if (first!=NULL){
  ListValue=first->value;   }
  return ;
}
Мейн моей программы (это вырезка из билдера, при нажатии на кнопку)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
ifstream f(FileListBox1->FileName.c_str());
fstream v;
string s,resu;
char ch;
int ListValue=0;
unsigned int i,k,z;
int sum=0;
HashList list;
HashWord word;
if (!f) { return;  }
while(!f.eof()){
                f>>s;
                word.name=s;
                Edit1->Text=Edit1->Text+" "+word.name.c_str();
                for (i=0;i<s.length();i++){
                  sum=sum+(int)s[i];}
                word.value=sum;
                word.path=FileListBox1->FileName.c_str();
                list.ShowValue(list);
                Edit2->Text=list.ListValue;
                list.AddToList(word.name,word.path,word.value);
                list.ShowValue(list);
                Edit1->Text=ListValue;
                list.WriteList(list);
}
Помогите пожалуйста найти в чем проблема.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2012, 21:07     Дописывание в текстовый файл
Посмотрите здесь:

Текстовый файл UTF-8 сохранить как текстовый файл ANSI C++
C++ Скопировать текстовый файл в новый файл, заменив в каждой строке слова «ok» на «*»
C++ Текстовый файл перевести в двоичный, а потом полученный двоичный файл перевести обратно в текстовый
Дан текстовый файл, содержащий целые числа. Определить в каждой четной строке максимальное число и записать результаты в новый текстовый файл C++
Даны натуральное , символьный файл и текстовый файл . Файл содержит 30 слов , каждое из которых будем называть ключевым C++
C++ Дано число k (< 10) и текстовый файл, содержащий более k строк. Создать новый текстовый файл, содержащий k последних строк исходного файла
дан текстовый файл.определить количество нечетных чисел и записать их в др текст файл C++
C++ Задан текстовый файл, необходимо по нему сформировать двоичный файл индексов

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 10:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru