Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.11.2013, 01:56   #1
siner
Пользователь
 
Регистрация: 05.11.2012
Сообщений: 15
По умолчанию программа для работы с двусвязным нециклическим списком. инверсия списка

Есть программа для работы с двухсвязным списком. Есть проблемы с функцией инверсии списка. Visual C++ выдает следующую ошибку:
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 > 6)
        {
            system("CLS");
            russia("\t!!! НЕВЕРНЫЙ ВЫБОР. ПОВТОРИТЕ ВВОД !!!\n\n");
            system("PAUSE");
            system("CLS");
            continue;
        }
    }
}
 
void russia(const char* rus)
{
    char word[100];
    CharToOemA(rus, word);
    cout<<word;
}
siner вне форума Ответить с цитированием
Старый 04.11.2013, 11:37   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
cin >> ptr;
Здесь? ptr это указатель, да еще и NIL, что ты в него хочешь навтолкать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
действие с двусвязным списком Тиса Паскаль, Turbo Pascal, PascalABC.NET 1 23.05.2012 19:27
Программа для работы с циклическим списком. antojke Паскаль, Turbo Pascal, PascalABC.NET 1 13.12.2011 15:34
Программа для работы с циклическим списком. Информация вещественного типа. antojke Помощь студентам 0 09.12.2011 00:00
Работа с двусвязным списком pavlintseva Помощь студентам 0 14.04.2011 18:10
Калькулятор на С++ с двусвязным списком Anastassija Общие вопросы C/C++ 4 24.06.2010 11:20