0

hello
i have a problem in cin characters
this is my code

//file LE.h

struct nodetype;
const int SIZE=81;
typedef char dataline[81];
typedef nodetype *nodeptr;

class LED
{
public:
    LED();
    ~LED();
    void insert(dataline lines);
    void Delete();//delete currnt line 
    void move(int num);
    int cnt();// To Find Number Of Nodes.
    void list();
    void EXIT();



private:
    nodeptr head;
    nodeptr current;

};

//file LE.cpp

#include"LE.h"
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cmath>

using namespace std;

struct nodetype
{
char data[SIZE];
nodeptr link;
};


LED::LED()
{
head=NULL;
current=NULL;
}
LED::~LED()
{
nodeptr delptr;
while(head!=NULL)
{
delptr=head;
head=head->link;
delete delptr;

}
}

void LED::insert(dataline lines)

{
    nodeptr newptr=new nodetype;
        newptr->link=NULL;

    for(int i=0;i<SIZE;i++)
        newptr->data[i]=lines[i];

    if(current != NULL)

{ 
    nodeptr ptr=head;
    while(ptr->link!=current)
    ptr=ptr->link;
    newptr->link=ptr->link;
    ptr->link=newptr;


}


    else if(head==NULL)
    {
        head=newptr;        
    }
    else
    {
            nodeptr cur = head;
            while( cur->link )
                cur= cur->link;
        cur->link=newptr;
    }




}

void LED::list()
{
    nodeptr put=current;
    if(current==NULL)
        cout<<"<<END>>\n";

    else{
    while(put!=NULL)
    {

        cout<<put->data<<endl;
        put=put->link;
    }
        }
}

int LED::cnt()
{
nodeptr temp=head;
int c=0;
if(head==NULL)
    return 0;
else
    c++;
while(temp->link!=NULL)
{
c++;
temp=temp->link;

}
return c;


}
void LED::move(int num)
{   nodeptr ptrMove;
    //current=NULL;
    ptrMove=head;
    int mMove;

    int funX;


    if(num<0)
    {

    funX=cnt()+num+1;//just for minus

    mMove=abs(num);//for minus

    if(mMove>cnt())
    {
        current=head;
        cout<<current->data<<endl;
    }
    else if(mMove<=cnt())

    {

        for(int i=1;i<funX;i++)
        {
            ptrMove=ptrMove->link;
        }
        current=ptrMove;
        cout<<current->data<<endl;

    }

    }


    else if(num>cnt())
    {
    current=NULL;
    cout<<"<<END>>  "<<endl;
    }
    else 
    {

        if (current==NULL)
            cout<<"<<END>>"<<endl;
        else
        {
        current=current->link;
        cout<<current->data<<endl;
        }
    }

}

void LED::EXIT()
{
exit(1);
}

void LED::Delete()
{
nodeptr Delt;
if(current==head)
{
    head=head->link;
}
Delt=current;
current=current->link;
delete Delt;
}



//client file


#include<iostream>
#include<cstdlib>
#include<cstddef>
#include"LE.h"
#include<string>
#include<cmath>

using namespace std;
int main()
{
    cout<<"###############################################################################\n";
    cout<<"#  Line Editor \n";
    cout<<"#  Please Use these commands (IN,DL,MV,LI,EX). \n";
    cout<<"#  command (IN) To Insert A New Line,should be followed by tow slashes (//). \n";
    cout<<"#  Command (LA) To list All Lines.\n";
    cout<<"#  Command (MV) Should Be Followed By Integer In The Same Line.\n";
    cout<<"#  Command (DL) To Delete The Current Line.\n";
    cout<<"#  Command (XT) To Terminate The Program.\n";
    cout<<"###############################################################################\n";
LED l1; 
int movment;
string input;
dataline line;

cout<<">";
cin>>input;

while(input!="XT")
{

    if (input=="IN")
    {
        cin.getline(line,SIZE);
        while(line[0]!='/'&&line[1]!='/'&&line[3]!='\0')
        {
            l1.insert(line);
        cin.getline(line,SIZE);
        }

    }
    else if(input=="LA")
        l1.list();
    else if(input=="DL")
        l1.Delete();
    else if(input=="MV")
    {   cin>>movment;
        l1.move(movment);
    }
    else if(input=="XT")
        l1.EXIT();
    else
        cout<<"Error Command...!"<<endl;
    cout<<">";
    cin>>input;

}
cout<<l1.cnt()<<endl;


system("pause");
return 0;
}
/*


HERE is my truble


cin.getline(line,SIZE);
            while(line[0]!='/'&&line[1]!='/'&&line[3]!='\0')
            {
                l1.insert(line);
            cin.getline(line,SIZE);

when i trying to input lines
like :
IN
111 1111 1111 111
2222 2222 2222 222
//

should insert into the linked list these lines
111 1111 1111 111
2222 2222 2222 222
just
but it add the // as a line

how i can exclude two slashes??

2
Contributors
1
Reply
2
Views
4 Years
Discussion Span
Last Post by Ancient Dragon
This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.