S
siner
Есть программа для работы с двухсвязным списком. Есть проблемы с функцией инверсии списка. Visual C++ выдает следующую ошибку:
c:\documents and settings\1\мои документы\visual studio 2010\projects\11\11\11.cpp(175): error C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::istream" (или приемлемое преобразование отсутствует)
Подскажите, пожалуйста, как это исправить.
c:\documents and settings\1\мои документы\visual studio 2010\projects\11\11\11.cpp(175): error C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::istream" (или приемлемое преобразование отсутствует)
Подскажите, пожалуйста, как это исправить.
Код:
#include <iostream>
#include <windows.h>
using namespace std;
class Node
{
public:
int number;
Node* next;
Node* last;
};
void russia(const char*);
void main()
{
short action = -1;
Node* head = NULL;
Node* tail = NULL;
Node* ptrLast = NULL;
while (1)
{
russia("1. Добавить Элемент\n");
russia("2. Просмотр Списка\n");
russia("3. Инверсия списка\n");
russia("0. Выход\n\n");
russia("Ваш Выбор: ");
cin>>action;
if (action == 0)
{
system("CLS");
break;
}
if (action == 1)
{
system("CLS");
int numb = -1;
russia("Введите Число: ");
cin>>numb;
Node* ptr = new Node;
ptr->number = numb;
ptr->next = NULL;
tail = ptr;
if (head == NULL)
{
head = ptr;
ptrLast = ptr;
ptr->last = NULL;
system("CLS");
continue;
}
ptr->last = ptrLast;
ptrLast->next = ptr;
ptrLast = ptr;
system("CLS");
continue;
}
if (action == 2)
{
system("CLS");
Node* ptr = NULL;
if (head == NULL)
{
russia("\t!!! СПИСОК ПУСТ !!!\n\n");
system("PAUSE");
system("CLS");
continue;
}
russia("* * * * * СПИСОК: СЛЕВА НАПРАВО * * * * *\n\n");
ptr = head;
while (1)
{
cout<<ptr->number<<" ";
if (ptr->next == 0)
break;
ptr = ptr->next;
}
cout<<"\n\n";
system("PAUSE");
system("CLS");
continue;
}
if (action == 3)
{
system("CLS");
Node* ptr = NULL;
if (head == NULL)
{
cin >> ptr;
int len = strlen(ptr);
for (int i=0; i<(len-1)/2; i++)
{
char c = ptr[i];
ptr[i] = ptr[len-1-i];
ptr[len-1-i] = c;
}
cout << "Perevernutue simvolu:\n" << ptr << endl;
cin >> ptr;
return 0;
}
system("PAUSE");
system("CLS");
continue;
}
if (action > 3)
{
system("CLS");
russia("\t!!! НЕВЕРНЫЙ ВЫБОР. ПОВТОРИТЕ ВВОД !!!\n\n");
system("PAUSE");
system("CLS");
continue;
}
}
}
void russia(const char* rus)
{
char word[100];
CharToOemA(rus, word);
cout<<word;
}