0

I have a problem with my console program.

I have a text file named "myRecord.txt" with the following contents:

101,Carlito Caballero,500.00
102,Tina Gamboa,560.34
103,Angel Caballero,750.55
104,Kyla Shane,850.32
105,Jogie Glen Mait,1000.00

If I run the program, the console should prompt the user to enter the id number (which is the set of numbers on each beginning of a line),

ID:___

and the output would be a profile of the id number entered.

//prompts user to enter a specific id number
ID:101

//output
ID:101
Name:Carlito Caballero
Rate:500.00

I have tried to tokenize the whole file but a getline cant have delimiters in it. I also had tried to find something on the text file but it only finds a string entered and not the whole line.

Any help would be appreciated.

3
Contributors
7
Replies
8
Views
6 Years
Discussion Span
Last Post by jogieglenmait
0

>>I have tried to tokenize the whole file
Post what you have tried.


>>getline cant have delimiters in it.

std::string word;
ifstream in("filename.txt");
while( getline(in,word,',') )
{
  do something with this token
}
0

This is what i had tried to do:

I tried to find the id number but it just give the correct id number but not the name and the rate:

void find()
{
    char size=100;
    char string[size],temp[size][32];
    char * tokenPtr;
    int i=0;

    cout<<"Enter ID number to search: ";
    cin.getline(string,size);

    tokenPtr =strtok(string," ,.");

    while (tokenPtr != NULL)
   	{
      	strcpy(temp[i],tokenPtr);
         i++;
      	tokenPtr = strtok(NULL," ,.");
    }
   	for(int j=0;j<i;j++)
    {
   	 char word1[300],word2[300];

        ifstream jogieglen("myRecord.txt");
        ifstream janmarion("myRecord.txt");

         while (jogieglen>>word1)
         	if (strcmp(word1,temp[j])==0)
   				 tokenPtr = strtok (word1," ,.-");
   				 cout<<"ID: "<<temp[j]<<endl;
   				 while (janmarion>>word2)
         	if (strcmp(word2,temp[j])==0)
   				 tokenPtr = strtok (word2," ,.-");
   				 cout<<"Name: "<<temp[j]<<endl;
    }
}

The Name: on the last part is just my poor attempt to at least show something.

But thanks to the idea, can i add other punctuations on the delimiters?

Edited by Nick Evan: added code-tags

0

Actually, yeah. He's my colleague. You're the same person who gave him the code. It was correct. Thanks for your help. Im looking forward to work with you again. Thanks Colezy!

0

Hey, thanks for you help. I think you should change your status from still learning to adept. Thanks a lot!

0

actually i had made a code for myself using the ideas given to me on previous posts

void find()
{

    ifstream data("myRecord.txt");
    string item,line;
    int x=0;
    int y=0;
    string id;

    cout<<"Enter Employee Id: ";
    cin>>id;

    while(!data.eof())
    {
        getline(data,line);
        string item_array[10];
        stringstream stream(line);
        x=0,y=0;

        while(getline(stream,item,','))
        {
            item_array[x]=item;
            x++;
            item_array[x]=item;
            y++;
        }

        if(item_array[0]==id)
        {
            cout<<"***********************************"
                <<"*****************"<<endl;
            cout<<setfill('.')<<left<<setw(35)<<"ID: "
                <<right<<" "<<item_array[0]<<endl;
            cout<<setfill('.')<<left<<setw(35)<<"Name: "
                <<right<<" "<<item_array[1]<<endl;
            cout<<setfill('.')<<left<<setw(35)<<"Rate: "
                <<right<<" "<<item_array[2]<<endl;
        }
    }

    data.close();
}

it works.

0

actually i had made a code for myself using the ideas given to me on previous posts

void find()
{

    ifstream data("myRecord.txt");
    string item,line;
    int x=0;
    int y=0;
    string id;

    cout<<"Enter Employee Id: ";
    cin>>id;

    while(!data.eof())
    {
        getline(data,line);
        string item_array[10];
        stringstream stream(line);
        x=0,y=0;

        while(getline(stream,item,','))
        {
            item_array[x]=item;
            x++;
            item_array[x]=item;
            y++;
        }

        if(item_array[0]==id)
        {
            cout<<"***********************************"
                <<"*****************"<<endl;
            cout<<setfill('.')<<left<<setw(35)<<"ID: "
                <<right<<" "<<item_array[0]<<endl;
            cout<<setfill('.')<<left<<setw(35)<<"Name: "
                <<right<<" "<<item_array[1]<<endl;
            cout<<setfill('.')<<left<<setw(35)<<"Rate: "
                <<right<<" "<<item_array[2]<<endl;
        }
    }

    data.close();
}

it works.

This question has already been answered. 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.