Sponsored Content
Top Forums Programming passing object to function, columns class Post 302513479 by Corona688 on Wednesday 13th of April 2011 10:29:44 AM
Old 04-13-2011
Quote:
Originally Posted by LMHmedchem
I have made some progress, I will deal with the issue of using string or stringstream in a little bit. Can a string be parsed by a delimiter using the same method I was using for stringstream, or do I have to do something different?
You have to do something different, perhaps something like this:
Code:
# from http://stackoverflow.com/questions/289347/using-strtok-with-a-string-argument-instead-of-char
void split(const string& str, const string& delim, vector<string>& parts) {
  size_t start, end = 0;
  while (end < str.size()) {
    start = end;
    while (start < str.size() && (delim.find(str[start]) != string::npos)) {
      start++;  // skip initial whitespace
    }
    end = start;
    while (end < str.size() && (delim.find(str[end]) == string::npos)) {
      end++; // skip to end of word
    }
    if (end-start != 0) {  // just ignore zero-length strings.
      parts.push_back(string(str, start, end-start));
    }
  }
}

I admit this looks clunky compared to stringstream... In C I'd just use strtok or strtok_r, which has side-effects that one must stay aware of but makes a lot of problems stupidly simple.

Quote:
I am a bit stuck on the loading function, which parses the stream and loads it to the appropriate var in the col object.
On first look I'm left wondering, you DID resize the vector to accommodate all the elements it might need, yes? They don't grow automatically.
Quote:
Code:
// accepts a stringstream and parses the data in to columns
int metadata_row_toCol( stringstream &colsRowStream, 
                        std::vector<col_metadata>& metadata ){
   int i = 0;
   std::string rowCell;
   // parse row into cells, tab delimiter
   while(getline(colsRowStream,rowCell,'\t')) {
      metadata[i].content = rowCell;
      i++;
   }
   // clear the buffer
   colsRowStream.clear();
}

This above works, but is hard coded to put the data into metadata[i].content. I can't seem to see how I indicate that the first rows goes into content, but the next row goes into a different member. It seems like I should be passing a pointer to metadata[i].content, and not to the metadata vector of objects.
The difficulty arises because you're processing it a line at a time even though the data doesn't make sense as individual lines. Make a function that takes a file stream(or better yet, a general purpose istream), it will be able to read and process additional lines at need by whatever method you please.
 

10 More Discussions You Might Find Interesting

1. Programming

Listing function exports from object file

Is it possible to view all the functions exported by a given object file? "dump -tv" comes the closest, but what exactly am I looking for to determine whether the symbol exists in the object file? Essentially, I have a library that requires a call to "xdr_sizeof" and the compile is failing... (5 Replies)
Discussion started by: DreamWarrior
5 Replies

2. Programming

How to make a function friend to both base and derived class

Hi, I have a base class and derived a class from the base class, i want to print & read the data for the object created for the derived class,so i have overloaded both the << and >> operators and also have done the foward declaration. Below is the code snippet, #include <iostream> class... (3 Replies)
Discussion started by: ennstate
3 Replies

3. Shell Programming and Scripting

Passing global variable to a function which is called by another function

Hi , I have three funcions f1, f2 and f3 . f1 calls f2 and f2 calls f3 . I have a global variable "period" which i want to pass to f3 . Can i pass the variable directly in the definition of f3 ? Pls help . sars (4 Replies)
Discussion started by: sars
4 Replies

4. Programming

Handling a signal with a class member function

Hello, i am using the sigaction function to handle the SIGCHLD signal.Is it possible to use a class member function as the handler function (the sa_handler member of the sigaction structure)? The function's signature is: void (*sa_handler)(int);so i don't think i can use a static member function... (2 Replies)
Discussion started by: Zipi
2 Replies

5. Shell Programming and Scripting

How to Call external function in .C or .So (Shared Object)

Hi, Anybody know any way to Call with Shell Script an external function wrote in .C or .So (Shared Object) on AIX enviroment and returning parameters of .C or .SO to Shell Script? Tks!! (6 Replies)
Discussion started by: rdgsantos
6 Replies

6. Programming

question about function object

I have a code as following: #include <iostream> #include <algorithm> #include <list> using namespace std; //the class Nth is a predicates class Nth{ private: int nth; int count; public: Nth(int n):nth(n),count(0){} bool operator()(int){ ... (2 Replies)
Discussion started by: homeboy
2 Replies

7. UNIX and Linux Applications

opends- help with custom object class

we have 2.2.0 of opends running on RedHat 2.6.21 and we're trying to setup a structure that will suit our needs. One of the things we'd like to do is create our own custom object classes based off some of the existing ones you get out of the box. The opends documentation covers this here (sorry, it... (1 Reply)
Discussion started by: snafu
1 Replies

8. Programming

Created a wrapper for a function in a class.

I have a class called Parsing with the following function. I want to create a wrapper for it, so that I call it using GetReal rather than GetFloat. Bit confused on how to do this. class Parsing { private: int Length; // int Ptr; ... (3 Replies)
Discussion started by: kristinu
3 Replies

9. Programming

How to initialize an object with another object of different class?

How to initialize an object of class say "A", with an object of type say "B". The following code give the error message "error: conversion from âAâ to non-scalar type âBâ requested" #include <iostream> using namespace std; class B; class A{ public: A() { cout <<"\nA()" << endl; } ... (1 Reply)
Discussion started by: techmonk
1 Replies

10. Programming

C++ : Base class member function not accessible from derived class

Hello All, I am a learner in C++. I was testing my inheritance knowledge with following piece of code. #include <iostream> using namespace std; class base { public : void display() { cout << "In base display()" << endl; } void display(int k) {... (2 Replies)
Discussion started by: anand.shah
2 Replies
STRVAL(3)								 1								 STRVAL(3)

strval - Get string value of a variable

SYNOPSIS
string strval (mixed $var) DESCRIPTION
Get the string value of a variable. See the documentation on string for more information on converting to string. This function performs no formatting on the returned value. If you are looking for a way to format a numeric value as a string, please see sprintf(3) or number_format(3). PARAMETERS
o $var - The variable that is being converted to a string. $var may be any scalar type or an object that implements the __toString() method. You cannot use strval(3) on arrays or on objects that do not implement the __toString() method. RETURN VALUES
The string value of $var. EXAMPLES
Example #1 strval(3) example using PHP 5's magic __toString() method. <?php class StrValTest { public function __toString() { return __CLASS__; } } // Prints 'StrValTest' echo strval(new StrValTest); ?> SEE ALSO
boolval(3), floatval(3), intval(3), settype(3), sprintf(3), number_format(3), Type juggling, __toString(). PHP Documentation Group STRVAL(3)
All times are GMT -4. The time now is 04:55 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy