C++ :: Retrieving Class Types From File Efficiently

Jun 30, 2014

Suppose your program has many concrete subtypes of Person, and each person will have their own file saved, with their type stored in that file. When reading the files to create the people again (of their proper types), what is the best method to maximize performance (and elegance by shortening the code)? Here is what I have so far.

First I used if statements, which is terrible, and now I've improved the performance logarithmically using std::map. I still suspect there is a better way, especially if there are going to be hundreds of different classes. If you want to test it, you can change the PATH constant to whatever path you want, or just leave it as an empty string, and the files will be created in the same directory as your cpp file. The part I'm trying to improve is pointed out in the comments.

struct Person {
std::string name;
Person (const std::string& newName) : name (newName) {}
virtual ~Person() = default;
};
struct Guy : Person {using Person::Person;};
struct Girl : Person {using Person::Person;};

[Code] ....

View 4 Replies


ADVERTISEMENT

C++ :: Retrieving Data From Txt File

Oct 3, 2013

When i execute the program it gets the right data for the first array but the scound either doesn't work at all or just gets to much data. i've tryed using getline and the "cin" for what the file would be in this case "myfile" there is also one more array that must be retrieved from the file.

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

[Code].....

View 4 Replies View Related

C++ :: Retrieving Variables From Text File

Apr 18, 2013

I have a text file config.txt which has:

"red = true"
"blue = false"
"children = 10"

I want to write a code that reads the values of these variables red, blue and children when executing the code.

I have something like this:

#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main () {
ifstream Configure;

[Code] .....

I want to read the read the values of red, blue and children in and use them when the program executes.

View 1 Replies View Related

C :: Phone Book Saving To File And Retrieving

Jul 14, 2013

I am supposed to make this phone book save to a file and then be able to retrieve it.

Code:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Phonebook_Contacts
{
char FirstName[20];
char LastName[20];
char PhoneNumber[20];
} phone;
}

[code]....

View 4 Replies View Related

C++ :: Conversion In Types Error (class Involved)

Mar 23, 2014

So I get errors like:

Error1error C2440: 'initializing' : cannot convert from 'const char [4]' to 'Course'
Error2error C2440: 'initializing' : cannot convert from 'int' to 'Course'158
Error3error C2440: 'initializing' : cannot convert from 'const char [6]' to 'Course'158
Error4error C2078: too many initializers158

# include <iostream>
# include <cstring>
#include <iomanip>
#include <cmath>
using namespace std;
class Course {
public:
char CourseName[10]; // Array of size 10, 9 characters and 1 null terminator

[Code] .....

And in the /// part I also need to use the dot operator and the arrow operator to print on the screen info about the second and third Courses.

View 3 Replies View Related

C++ :: Class To Store Nodes Of Tree - Converting Between Types

Jun 4, 2013

I'm writing a class to store a tree I have a small issue.

I have a class which stores a node of the tree, something like this:

template<class T>
class node {
private:
(stuff regarding parent node and child nodes);
T __data;
public:
// more stuff (constructors and utility functions) here
};

And I want to I want to be able to do the conversion T(node<T>) implicitly. For example, I want to be able to do this:

node<int> myNode;
myNode=5;
myNode+=10;
myNode*=9;
int x=int(myNode/4);
cout << x+myNode;

And this:

class myClass {
int x;
int y;
void print () {cout << x << ' ' << y << endl;}

[Code] ....

How could I achieve this?

View 2 Replies View Related

C++ :: Design Image Class Which Should Work With Various Data Types (Multidimensional)

Dec 2, 2013

I have been thinking about this all day and I am yet to come up with a good solution. So, I need to design an image class which should work with various data types (int, float, double etc.) and can also be multidimensional (2, 3, 4, 5). So, what I did was generate a template image class as follows:

Code:
template<typename T, int dimensions=3>
class Image {
private:
T * data;
};

Anyway, now I have various image formats that I want to support, so the easy thing to do is create a Factory sort of object which will call eventually generate the correct image.

So I want to create various image classes called ImageType1, ImageType2 etc. which will take the input image and generate the correct Image object. However, I do not want these objects to be templated because they need to be passed from functions and be used in a generic way.

So, at run time I will need to be able to do this…

Code:
class ImageType {
public:
ImageType() {
PolymorphicImage * image = new Image<float, 3>();
}
private:
PolymorphicImage * image;
};

So, I want my ImageType classes to contain the Image object and be able to generate it with the right template arguments at run time. Is there any way to do this without having multiple specialised definitions for ImageType?

View 2 Replies View Related

C :: Efficiently Multiplies A Number By A Factor 2

May 1, 2013

Write a C-program that efficiently multiplies a number by a factor 2 to the power n. The number to multiply and n are variables, which get a value at the start of the program.

Clue: 1 shift to the left is the same as multiplying by 2. 2 shifts to the left are the same as multiplying by 4. 3 shifts to the left are the same as multiplying by 8

View 7 Replies View Related

C++ :: Measuring Time Difference Efficiently?

Jul 9, 2014

I have accomplished this but it looks hacky if you ask me

time_t timeToNextFeed()
{
Leaf::Record* r = records->getRecord(0);
if (r != NULL)

[Code].....

View 2 Replies View Related

C++ :: Use Construct Object (Shape) Efficiently?

Jun 27, 2014

have a problem with my code (I wish for answer with code). The conditions I have to grant:

- **Only** a pointer to an object must be saved in a **standard** class vector (e.g vector<ShapePtr>)
- Base class must be a polymorphic class (I call this class ShapePtr)
- I **must** have a deep copy process
- Constructor is **not** suppose to do a deep copy
- **clone()** is suppose to do the deep copy

Here is the code **provided** to me:

main.cpp
int main() {
typedef shared_ptr<Shape> ShapePtr;
vector<ShapePtr> shapevec;

[Code].....

View 1 Replies View Related

C :: Parameter Names Without Types And Conflicting Types In Fgets

Jan 22, 2014

I have this

Code:

#include<stdio.h>
#include<ctype.h>
#include<string.h>

int check_up(char string[]);
int check_low(char string[]);
void to_up(char string[]);
void to_low(char string[]);

[Code] .....

When I compile this I have the following problems: warning: data definition has no type or storage class [enabled by default] in 'to_up(word)'conflicting types in 'to_up' function and to_low function warning: data definition has no type or storage class [enabled by default] into_up function error: unknown type name "word" in line 'printf("All uppercase %s. ", word):;'warning: parameter names (without types) in function declaration [enabled by default] in 'to_up(word)'and 'to_low(word)' 'note: previous declaration of "to_up" was here in function declaration of to_up function

View 7 Replies View Related

C++ :: How To Scan Multiple Vectors For Common Elements Efficiently

Nov 6, 2013

we conform to the ISO C standard and this snippet of code : Code: vector<tree*> *leaves = new vector<tree*>[num_threads]; where num_threads is specified from command line arguments so not dynamically allocating it violates the standard.

Let's also assume num_threads is greater than one.

What I want to do is scan each vector in leaves for duplicates. If any two vectors in the set have matching addresses, they both immediately go onto the "unsafe" pile and will no longer be subject for testing.

If a vector clears one vector, we test it against the others in the set.

So if we have 3 vectors, A, B and C we test A against B then A against C. For efficiency, we then then just test B against C.

Like I said, I want a "safe" and "unsafe" pile. Every vector in "safe" is fully unique while every vector in "unsafe" is not unique.

I thought about just using a for-loop to loop through leaves and then iterate through each element but I'm not sure if that'll work just right out of the box.

View 14 Replies View Related

C++ :: Retrieving File Object From Function Then Pass To Another Function?

Jun 27, 2014

I would like to have 2 functions. (FYI, I haven't even tested these because I don't have a compiler on this PC, so don't know what they'll do. I'm also new to C++, self-teaching.)

My question is, I'm sure that oFile should be type object (of some sort), not int, but I'm not sure how to reference it correctly so that it passes from FileOpen to main to FileClose.

Code:
#include <iostream> //I/O
using namespace std;
#include <fstream> //files
using namespace ios;
int FileOpen(string fileName) {
ifstream oFile (fileName); //attempt to open file

[Code] ....

View 1 Replies View Related

C++ :: Ifstream Input To Different File Types

Mar 14, 2014

I want to create a function with a return type. However, I want to use it to read from a file (ifstream) and produce multiple different types of return types. The different file types returned would be always in the same order. For example

Text File:
Name
1
12
30
Area

I want to ifstream line 1 (Name) to an array of characters.
line 2, 3, and 4 to integers.
and line 5 as a string.

The basic problem is that if I make a function with one return type, it would only return one type of data to my int main(). I suppose I could create multiple functions that would run this for different variable types and destroy the invalid types. But this seems inefficient. It is being used to load in data from a previously saved file.

So far..

//function to load a player's data
string loaded(string fileName) {
ifstream loadfile;
loadfile.open(fileName);

[Code] .....

I was thinking I could possibly do something with a counter to count the lines and assign a value based on their order. The problem is with the 1 return value of a function. Maybe there is another operation I could use?

View 4 Replies View Related

C++ :: Naming Files And Making File Types?

May 12, 2013

How to deal with files and I wanted to make a way for the user to make his own file name and then I want it to be a .txt file, so I take the fileName variable after the user has created a name for it then add ".txt" for the file type then convert the string to a constant char for the open method.

#include <iostream>
#include <fstream>
#include <sstream>
using namespace std;
int main() {

ofstream fileObject; // ofstream object to read/write to and from file

[Code] ....

View 2 Replies View Related

C++ :: Reading Mixed Data Types From A File

Mar 28, 2015

How to properly read data from a .txt file.

If I have data stored in a .txt file, which is formatted/stored like this:

Code:
Apples and Strawberrys
10
Cherrys
12
Pears
16
Grapes, Melons, and Peaches
20

I know that if I read/extract, and print the data like this;

Code:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
ifstream dataFile("test.txt");
string textData;
[Code] ....

Each line of data is stored in the string "textData" and printed to the screen, exactly as it was stored in the .txt file. So, all is clear to me up to that point.

But, what if I wanted to store each line of text in the string "textData", and store the numbers/integers into a separate variable called "numberData"? How would I retrieve and store the numbers (in the above example .txt file, every 2nd line) separately from the text?

For now, to keep things simple, let's assume that the data in the .txt file is stored/formatted as in my example (1 line of text, 1 line containing a number/integer, ...repeat) so, there is no need to test if the retrieved data is actually text or an integer, before it is stored in the appropriate variable type.

View 14 Replies View Related

C# :: Retrieving Same Records In The Same Row?

Sep 25, 2014

I have the records "File attached"

My query is

from c in JOB_HISTORies join d in DEPARTMENTs on c.DEPARTMENT_ID equals d.DEPARTMENT_ID select new {d.DEPARTMENT_NAME,c.START_DATE,c.END_DATE}

How do i put the record Accounting in the same row to avoid duplication.

View 4 Replies View Related

C# :: DLL Passing And Retrieving Data

Sep 18, 2013

I have a C# program going and want to be able to call the DLL and receive back the data requested through a pointer.Below is the DLL import within my C# code.

Code:

[DllImport("MyTest.dll")]
public static extern int ReadNetwork(Byte[] ROM_ID); Below is the code in the DLL Code: int _stdcall ReadNetwork(unsigned char* Array1)
{
ReadDevice(readBackArray);
for(i = 0; i < 20; i++)
{
Array1[i] = readBackArray[i];
}

[code]....

I've tried changing the return values in the DLL's ReadNetwork() function and that works ok, so I know I'm calling the DLL and it runs ok, but printing the result back is where I'm having the problem.

View 2 Replies View Related

C++ :: Retrieving First Three Bits Of A Number

Apr 25, 2013

I am trying to retrieve the first three bits of a number. The code that I am using should work but it isn't giving me the correct result when trying certain numbers. Below is the code I am using:

unsigned short num1, num2 = 0;
unsigned short num = 65535// binary 111111111111111
num1 = num && 0x07;// gives me 1 but should give 7(111)
num2 = num >>3;//gives me 8191, which is correct

Why I am not getting the first three correct bits(111)?

View 2 Replies View Related

C/C++ :: Retrieving Contain Of Array Using Pointer

Nov 30, 2013

I was struggling the last 2 days with this C script supposing to open a list of strings (input as fopen(argv[1])and allowing to access to any element of the list. I created an array *gcm[10000] and a pointer *(*gcm_ptr[10000] = &gcm. However, when I try to list whatever n[i], it always gives me the last entry.

View 4 Replies View Related

C/C++ :: Retrieving User Input With Getline?

Mar 7, 2015

I'm writing a simple text adventure style program in order to practice C++. I originally used char to get whether the user wanted to go north, south etc, requiring they enter W, A, S, or D, and then I used a switch statement, rather than a bunch of else if blocks to move in the appropriate direction. Last night I started updating the code and wanted to require the user type an actual string like "go north" to move, so I'm in the process of converting it over to getline();.

The way it works is the user will input "go north", and if the string is equal to "go north" it will set a variable to 1, 2, 3, or 4, so I can keep the switch statement. The program compiles but whenever it asks for user input, it always hangs waiting for 2 separate lines of input regardless of whether or not you put a space between your command. The move function is as follows:

void movement() {
bool loop = true;
int roomNorth = 0;
int roomWest = 0;
int roomSouth = 0;
int roomEast = 0;
int dirOption;
string dir = "";

[code]....

I read that it could be an issue with getline and the new line characters, which is why I added the cin.ignore in there...so yea the code will wait for 2 separate lines of input and then always outputs "Invalid direction!" regardless of the input.

View 3 Replies View Related

Visual C++ :: Getting Error While Retrieving Value From ADO Recordset

Jul 21, 2013

I have a vc++ project file which reads data from access 2007 database.

I have successfully declared and opened connectionPtr and recordSetPtr objects.

The follwoing code is giving an error message that "item cannot be found in the collection"

stringVar = (recordSet->Fields->GetItem("[String]")->GetValue()).bstrVal;

If i replace "[String]" with "String" then above statement executed successfully.

How can i execute the above statement with "[String]" without errors?

View 4 Replies View Related

C++ :: Retrieving Extracted Values And Run Time Error

Aug 6, 2014

I have issues for the following piece of code :

Code:
#include <string>
#include <fstream>
#include <iostream>
#include <cstdlib>

[Code] ....

I get errors retrieving the grade values extracted, and then I get a run time fault.

View 3 Replies View Related

C :: Retrieving SIM Card Number From Dongle Using Program?

Jan 2, 2014

I want to get or view the SIM card number from the dongle (the dongle will b already connected to the computer where the SIM card will be inserted into it) but the coding should be done by C programming / Language.

View 5 Replies View Related

C/C++ :: Storing And Retrieving Large Amount Of Data

Nov 28, 2012

I have to store large amount of data and retrieve the same data then write into file in C++. Currently I am using vector to store and retrieve. But vector is taking more time to store and retrieve the element. Is any other best data structure to store and retrieve large amount of data in unordered way?

Example code:

int I1 = 700,I2 = 32, I3 = 16;
//declare and resize the vector size
vector< vector < vector < vector<DOUBLE> > > > vPARAM; 
vPARAM.resize(I1, vector< vector < vector<DOUBLE> > >

[Code] ....

View 3 Replies View Related

C :: Retrieving Values That Are Stored To Compact Flash Card

Sep 19, 2013

My specific request is for retrieving values that are stored to a CompactFlash card. I am able to store values (we call them recipes) to the CompactFlash card as .csv file. I just haven't been able to figure out the code to retrieve this information back to the touchscreen.

Code:
// Create a new folder if it doesn't exist
CreateDirectory("/recipes");
//Create the file if it doesn't exist
CreateFile("/recipes/recipe.csv");
//open the file
hfile = OpenFile("/recipes/recipe.csv", 2);

[Code]....

Now with that said, I would like to retrieve these values from the .csv file.

View 7 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved