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

Работа с файлами и потоками - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с функциями http://www.cyberforum.ru/cpp-beginners/thread785241.html
Помогите пожалйста))) Очень нужно Задание: Вычислить Z = (X1 + Y1) / (Х2 - Y2), где Х1 и Х2 - корни уравнения 2x2 +x – 4=0; Y1 и Y2 – корни уравнения ay2 + 2у - 1 = 0. (Все корни действительные). Я пробовала но не очень понимаю как z записать. Впринципе програма работает но нужно еще раз вводить данные и мне кажется что это не совсем правильно работает програма. буду очень благодарна за...
C++ Заполнение строки через функцию Добрый день! При вызове функции f1 оператор cin.getline не срабатывает. На экране отображается одна пустая строка (следствие функции puts), после чего программа завершает работу. При использовании gets вместо cin.getline происходит тоже самое. Во второй функции f2 оператор cin срабатывает, но он не позволяет записать в массив string2 более одного слова. Это не подходит. Как мне сделать... http://www.cyberforum.ru/cpp-beginners/thread785240.html
найменшее общее кратное C++
Ниже приведена программа на языке С. Перепишите ее в соответствии со стилем ввода/вывода C++. /* Преобразуйте эту программу на С в соответствии со стилем программирования C++. Эта программа подсчитывает наименьшее общее кратное V #include <stdio.h> int main(void) int a, b, d, min; printf ("Введите два числа:"};
Ввод/вывод C++
Здраствуйте. Шиворот на выворот в вузе обучение начинается на основое того чего небыло. В данном смысле имеется ввиду ооп на си++ без каких либо знаний си++. Дали первую лабу как вступительную в си++ дабы понять как работать с вводом и выводом в си++. Задание состоит в перегрузке функции. одна из перегруженных должна писать в текстовый файл, другая в бинарный(чтение так же). Соотвественно...
C++ Динамически выделенная память http://www.cyberforum.ru/cpp-beginners/thread785209.html
Имеем прототип Polinomials operator+(const Polinomials &) const; И имеем функцию Polinomials Polinomials::operator+ (const Polinomials &) const { Polinomials temp; return temp; } int main() {
C++ Задержка перед выходом из программы Почему когда в С++ запускаешь программку с уравнением(вводишь значение х, у) то, когда должен появиться ответ, он появляется на долю секунды и окно закрывается? Может что-то нужно в коде прописать? подробнее

Показать сообщение отдельно
fuzzytoozy
8 / 8 / 1
Регистрация: 23.11.2012
Сообщений: 94

Работа с файлами и потоками - C++

13.02.2013, 03:06. Просмотров 362. Ответов 2
Метки (Все метки)

Здравствуйте! Проблема такая. В программе представлен связный список. Программа позволяет ввести в него данные записать их в файл, считать данные из файла в другой объект и вывести на экран. Почему то при записи появляется некое многозначное число, своей громоздкостью напоминающее адрес в памяти. Например, если я введу 12, 26 и затем 36. Потом запишу в файл, нажав 3. Затем считаю данные в другой список, нажав 4 и отображу их нажав 5 получится следующее:

845641244
12
26
36

код:
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
#include <iostream>
#include <fstream>
#include <conio.h>
using namespace std;
///////////////////////////////////////////
fstream f1;
///////////////////////////////////////////
struct link
{
 int data;
 link* next;
};
/////////////////////////////////////////////
class linklist
{
 private:
  link* first;
 public:
  linklist( )
   { first = NULL; }
  ~linklist ( )
   {
    link* current = first;
    while ( current != NULL )
    {
     link* temp = current;
     current = current->next;
     delete temp;
    }
   }
  void additem ( int d );
  void display ( );
  void writeItem ( );
  void readItem ( );
};
//////////////////////////////////////////////
void linklist :: additem ( int d )
{
 link* newlink = new link;
 newlink->data = d;
 newlink->next = first;
 first = newlink;
}
///////////////////////////////////////////////
void linklist:: writeItem()
{
   f1.open("d1.txt", ios::out | ios::binary);
   f1.seekp(0);
   link* current = first;
   while ( current != NULL )
  {
    f1.write(reinterpret_cast<char*>(&current->data), sizeof(int));
    current = current->next;
   }
   f1.close();
   cerr << "\n Data is written!\n";
}
//////////////////////////////////////////////////
void linklist :: readItem(  )
{
 f1.open("d1.txt", ios :: in | ios :: binary);
 f1.seekg(0);
while (!f1.eof())
{
 link* newlink = new link;
 f1.read(reinterpret_cast<char*>(&newlink->data), sizeof(int));
 newlink->next = first;
 first = newlink;
}
cerr << "\n All data is placed to new linklist!\n";
f1.close();
}
//////////////////////////////////////////////////
void linklist :: display ( )
{
 link* current = first;
 while ( current )
 {
  cout << current->data << endl;
  current = current->next;
 }
}
///////////////////////////////////////////////
int main ( )
{
 linklist li;
 linklist li1;
 char ans = 'y';
 char chose = '\0';
 int dat;
do
{
 while ( true )
 {
  cerr << "\n Press 1 to add data "
  << "\n Press 2 to display all data "
  << "\n Press 3 to write all data "
  << "\n Press 4 to read all data to new linklist "
  << "\n Press 5 to display new linklist "
  << "\n Press 6 to exit " << endl;
 
  chose = getch();
 
  if ( chose < 1 && chose > 5 )
  {
   cin.fail();
   continue;
  }
  break;
 }
 
 switch ( chose )
 {
  case '1':
  {
   while ( ans == 'y' )
   {
    cerr << "\n Enter data to add ( integer number ): ";
    cin >> dat;
    li.additem(dat);
    cerr << "\n Continue ? (Y/N): ";
    cin >> ans;
   }
    break;
  }
 
  case '2':
  {
   li.display(); break;
  }
 
  case '3':
  {
   li.writeItem(); break;
  }
 
  case '4':
  {
   li1.readItem(); break;
  }
 
  case '5':
  {
   li1.display();
   break;
  }
 
  case '6':
  {
   exit(0);
  }
 }
} while ( true );
 
}
Никак не могу понять почему. Подскажите пожалуйста, только не парой слов, а разжуйте посерьезней. Убейте во мне быдлокодера =)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru