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

Чтение начиная с конца файла - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ cin.ignore http://www.cyberforum.ru/cpp-beginners/thread934485.html
Как работает эта функция? cin.ignore (1, '#');
C++ Ошибка при компиляции IDE MSVS 2012. Почитал первые страницы книги, решил поэкспериментировать. При компиляции (F5) сначала пишет, что "Следующий проект устарел - Debug Win32", а потом пишет, что "в ходе построения произошла ошибка". Вот код: #include <iostream> main() { using namespace std; int a, b, name; cout << "Как тебя зовут?" << endl; http://www.cyberforum.ru/cpp-beginners/thread934478.html
C++ Как создать чат между 2-мя сом-портами?
Народ, всем привет! Есть задачка, создать чат меж двух СОМ-портов. Отправить, принять и вывести на экран сообщения. Пытаюсь найти хоть что-нибудь внятное по этому поводу в сети. Какой проект лучше юзать для данной задачи? Я пытаюсь создать всё это в CLR С++ VS2010. Может быть, у кого-нибудь есть информация по такой задаче?
C++ Обмен сообщениями
Вообщем такая проблема. Я решил написать самую простую прогу что бы два пользователя могли писать друг - другу сообщения по интернету,типо соц.сети вроде icq или друг вокруг.Так вот я хотел бы что бы Вы мне дали вот этот фрагмент кода , где имено два пользователя могут обмениваться сообщениями. Я программирую на visual c++ 2010 ! Заранее спасибо!
C++ Составить регулярное выражение http://www.cyberforum.ru/cpp-beginners/thread934459.html
Здравствуйте, pomogite составить регулярное выражение для парсинга адресов До это приходилось парсить только ipv4, Пользовался вот таким шаблоном std::string pattern("(\\d{1,3}(\\.\\d{1,3}){3})"); теперь надо выделять из лога только адреса в которых указан порт. Пример: 127.0.0.1:2900 - вывести в файл 192.168.0.1 - пропустить P.S. второе слово топика написанное по-русски вызывало...
C++ OpenDialog->FileName; OpenDialog->FileName; от сюда беру путь. Мне надо вырезать рабочий каталог как лучше всего ето сделать! Либо как мне открыть етот файл!!!! if (!DirectoryExists("Тот каталог что нужен")) { if (!CreateDir("Тот каталог что нужен")) throw Exception("he he"); } подробнее

Показать сообщение отдельно
ArkTaS
1 / 1 / 0
Регистрация: 01.07.2013
Сообщений: 127

Чтение начиная с конца файла - C++

06.08.2013, 21:22. Просмотров 1894. Ответов 15
Метки (Все метки)

Всем добрый вечер! Программа создает самопальный класс список как в STL и пишет/ читает с файла Вот результат работы: Чтение начиная с конца файла. Считывать в обратном порядке, затем переворачивать не предлагайте. Помогите пожалуйста заставить ее читать символы в обратном порядке.
Пробовал вносить в функцию чтения такие изменения( помечены !! в коментариях) , но программа висла при запуске:
Режим ios::ate почему то не работает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void linklist::read()
{
   ifstream file;
   file.open("ex8.txt", ios::ate);     // !!
   file.seekg(0, ios::end);   // !!
   cout<<endl;
   while(!file.tellg())     //  !!
   {
   link* newlink = new link; // выделяем память
   file>>newlink->data;
//  cout<<newlink->data<<' ';
   newlink->next = first; // запоминаем значение first
   first = newlink; // first теперь указывает на новы
   }
   file.close();
}
Сама программа без изменений, та что считывает в обратном порядке:
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#include <fstream> // для потоковых файловых функций
#include <iostream>
#include <istream>
#include <string>
#include <typeinfo> // для typeid()
using namespace std;
#include <process.h> // для exit()
 
 
struct link // один элемент списка
{
   int data; // некоторые данные
   link* next; // указатель на следующую структуру
};
class linklist // список
{
private:
   link* first;
  // static fstream file;
public:
   linklist() { first = NULL;  } // первого элемента пока нет
   void additem(int d); // добавление элемента
   void display(); // показ данных
   void read();
   void write();
  /* static void Open()
   {
       file.open("ex8.txt", ios::in | ios::out | ios::trunc );
   }*/
};
///////////////////////////////////////////////////////////
void linklist::additem(int d) // добавление элемента
{
   link* newlink = new link; // выделяем память
   newlink->data = d; // запоминаем данные
   newlink->next = first; // запоминаем значение first
   first = newlink; // first теперь указывает на новый элемент
}
///////////////////////////////////////////////////////////
void linklist::display()
{
   link* current = first; // начинаем с первого элемента
   while(current) // пока есть данные
  {
   cout << current->data << ' '; // печатаем данные
   current = current->next; // двигаемся к следующему элементу
  }
}
 
void linklist::write()
{
   ofstream file;
   file.open("ex8.txt" );
  file.seekp(0);
   link* current = first; // начинаем с первого элемента
   while(current) // пока есть данные
   {
    file << current->data; // записываем данные
    current = current->next; // двигаемся к следующему элементу
    if(current)
        file<<' ';
   }
   file.close();
}
 
void linklist::read()
{
   ifstream file;
   file.open("ex8.txt");
 //  file.seekg(0, ios::end);
   cout<<endl;
   while(!file.eof())
   {
   link* newlink = new link; // выделяем память
   file>>newlink->data;
//  cout<<newlink->data<<' ';
   newlink->next = first; // запоминаем значение first
   first = newlink; // first теперь указывает на новы
   }
   file.close();
}
//fstream linklist::file;
///////////////////////////////////////////////////////////
 
void main()
{
   setlocale( LC_ALL,"Russian" );
 
   linklist li; // создаем переменную-список
 //  linklist::Open();
 
   li.additem(25); // добавляем туда несколько чисел
   li.additem(36);
   li.additem(49);
   li.additem(64);
   li.display(); // показываем список
 
   li.write();
 
   linklist li2;
   li2.read();
   li2.display();
 
   cout<<endl;
   system("pause");
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru