C++ :: Filling Vector From A File - Adding Empty Element At The End
Apr 20, 2014
I'm having a problem filling a vector from a file. Basically, it is adding an empty element at the end. I'm new to Qt and haven't worked with file streams much so how to stop the stream before it adds the extra element.
void gui::get_data() {
mileage.clear();
QFile file(file_label->text() + ".txt");
QTextStream in(& file);
float m;
float g;
QString d;
[Code] ....
But, if I add another element to the vector and write that the file look like this.
//file after adding element
132654 0 02132014
132654 0 02132014
0 0
132998 22 02202014
I have it set to append at the moment so that is why the first line is repeated. I figure the problem is with if(in.atEnd()). I could fix it by deleting the last element right after adding it, but that seems like more of a hack than anything else.
View 3 Replies
ADVERTISEMENT
Mar 21, 2013
I'm writing a program with a class containing a private std::vector<bool>. I chose bool because the vector represents a 2D array (think grid) and I only need 2 states per cell. I kept it one-dimensional as this hardly complicates things.
My problem is that I don't know how to initialize the vector, i.e. fill it with 0's.
The grid's resolution is not known at compile time, so I imagine I have to set the size (and content) of the vector in the class constructor.
Here's what I have tried among several things:
Code: World::World(const u_short worldsize)
{
grid.reserve(worldsize * worldsize); // grid is the private vector; square dimensions.
std::fill(grid.begin(), grid.end(), 0);
std::cout << grid.size();
} The output is 0. Only std::vector::push_back seems to have an effect on size(), but judging by its description, it doesn't look like the right candidate to populate a vector with zeros. Correct me if I'm wrong.
Frankly I expected line 3 to set the vector's size.
View 5 Replies
View Related
Feb 1, 2013
How to fill a vector with structs that are read in from a separate file. Each line in the file would read for example "Doe John M 26" for the name of the person, gender and age. I just need to get pointed in the right direction so I can get this started.
View 2 Replies
View Related
Oct 10, 2013
how to add a list of information from a file to a vector of a class. Here is my code:
Champion_Info.h
#ifndef CHAMPION_INFO_H_INCLUDED
#define CHAMPION_INFO_H_INCLUDED
#include <vector>
#include <string>
[Code].....
View 6 Replies
View Related
Dec 10, 2014
I have two classes, one class requests another class to populate a vector with some data using getAvailableStreams() method:
vector<AutoRefPtr<ManifestStream> > availableStreams;
std::cout << "now asking for streams." << std::endl;
manifest->getAvailableStreams(&availableStreams);
std::cout << "got so many streams: " << availableStreams.size() << std::endl;
The other class passes another pre-populated vector back:
virtual RESULT getAvailableStreams(std::vector< AutoRefPtr<ManifestStream> >* availableStreams) {
availableStreams = static_cast<std::vector< AutoRefPtr<ManifestStream> >* >(myStreams); //myStreams contains 1 stream
I'm also adding a stream here directly just for testing purposes:
ManifestStream stream2;
availableStreams->push_back(AutoRefPtr<ManifestStream>(&stream2));
std::cout << "calling getAvailableStreams. Giving so many streams: " << myStreams->size() << ", " <<
availableStreams->size() << std::endl;
return result_OK;
}
If I run the code, I can see the following logs:
Now asking for streams. Calling getAvailableStreams.
Giving so many streams: 2, 2
got so many streams: 0
Why am I getting 0 streams when I exist the method? I just had 2 streams in availableStreams while I was inside the method, where have they disappeared?
View 6 Replies
View Related
Dec 16, 2014
Currently I'm implementing a T9 (predective text) project in c++ using n-ary Trees. I've never used the n-ary tree before so I really have some difficulties
I have to add words into the tree, knowing that each node of the tree contains a linked list (for the words) and a vector of pointers to access the next node
the words should be stockes in the different nodes according to their T9 code and then when the user insert a number, my program should display all the words corresponds to that code. For example the code: 4663 matches "good" "home" "gone" ...and so on...
I would like to understand how can I add the words into the Tree and how can I display them later
Here are my structs :
struct NodeList{
string data;
NodeList * next;
};
struct List{
NodeList *head;
[Code] ....
How can I add the words and display them...
View 8 Replies
View Related
Feb 10, 2015
Write a program having structure which hold address fields as Name, Address Line 1, City, State, ZIP. Program should able to hold 50 entries of address. Application should have feature/choice option to add, delete and Search address by name .
View 1 Replies
View Related
May 3, 2013
I am storing info in a vector but I want to store certain info at a particular index. I am new to using vectors and am unsure about have to do this. I am aware of the insert method but am confused on how to use it to store at a particular index.
View 1 Replies
View Related
Sep 6, 2014
I am trying to pop the element on a vector off and return its value at the same time
vector.push_back();
Unfortunately that code only removes that element from the vector it does not return it
Is the only way to get the element and destroy it is to do this?
vector.back();
vector.pop_back();
View 1 Replies
View Related
Aug 4, 2013
How to access an element of the point3f vector. E.g. :
int main() {
vector<Point3f> a;
a.push_back(Point3f(0,0,0);
a.push_back(Point3f(0,0,1);
//print first x,y,z element
cout<<a[0]<<endl;
[Code] ...
But it doesn't work firstly because it says can't use typename i.e. <float>
View 8 Replies
View Related
Sep 22, 2014
pop_back just returns void, so I just can't use that?
erase is okay but it doesn't return anything....
Do I use a combination of both?
View 2 Replies
View Related
Nov 22, 2013
How could I search a vector element with multiple strings
i.e. vector.at(i) = This is a test
How could I search that to look for the word "test" in that element?
View 7 Replies
View Related
Mar 6, 2014
Consider I have a vector of strings and then I use an istringstream to read each word of each element in the vector, why do I nescessarily use an istringstream?
This is the code that does what I just described (I think)..
Code:
for(auto &elem : svec) {
istringstream strm(elem);
while (strm >> word)
//Magic
}
What would be the equivalent of using something else than an istringstream in this scenario and how does the istringstream work?
View 7 Replies
View Related
Aug 16, 2014
I am programming a 2-D platformer video game. The stages are composed of an array (really a vector) of 16x16 px^2 tiles. I have defined a base class "Tile" and several derived classes, e.g., "Ramp", "Door", etc., which have their own attributes. The idea is that upon entering a room, the program will load all of the necessary tile data for that room into a vector. So, I have a vector that looks like: vector <Tile*> room_tiles, and resize it based on the total number of tiles in the room: room_tiles.resize(Tile_Count). I then want to read in certain info from the data file containing all of the tile information for that room. For example, if the data file says Tile 5 should be a ramp, I want to change the 5th element of the room_tiles vector to the derived ramp class. This is really where I'm having trouble. I've worked with vectors of base and derived classes before, but those were always of indeterminate size and I always used something like: (Vector).push_back(new DerivedClass()) to specify the derived class of that element. The problem is that that method only seems to work if you are appending elements to the end of a vector.
how I can do this?
View 7 Replies
View Related
Jul 22, 2013
A file is created but its empty. And when I first create an entry and then display all the entries, it does nothing.
#include<iostream>
#include<fstream>
#include<iomanip>
#include<string>
using namespace std;
class comp {
[Code] ....
View 2 Replies
View Related
Jun 20, 2013
I am having a trivial trouble on how to create three different arrays from a text file. I am a beginner in C++. I have a .txt file containing a string of 'float' values as below:
0.5
0.6
0.7
0.8
0.9
1.0
1.1
1.2
1.3
//----------------------
Now, I want to make three arrays, p1[], p2[], and p3[] from them, so that
p1[] has elements from line: 1, 4, 7, ...,
p2[] has elements from line: 2, 5, 8, .., and
p3[] has elements from line: 3, 6, 9,... of the .txt file.
My original file has a huge amount of data, so I would have to use a loop, but I cannot think of a way to fill my arrays as described.
View 3 Replies
View Related
Mar 2, 2013
I am trying to do binary filling. This is the Constructor code, you will see a couple of integer arrays:
Doc::Doc ( int useridValue , string firstnameValue , string lastnameValue , string deptValue
, int dayinhourValue[] , int dayinminValue[] ,int dayouthourValue[] , int dayoutminValue[]
, int timeperpatValue , int appValue[] , int applimValue[] ) {
setuserid(useridValue);
[Code] ....
it gives an error:
void Doc::setdayinhour ( intdayinHOUR[] ){
for(int i=0;i<7;i++) {
dayinhour[i]=dayinHOUR[i];//highlighted area
} }
I am using this code for filling:
void main () {
Doc r;
ofstream outDoc("docdata.dat" , ios::out | ios::binary);
if (!outDoc) {
cerr << "File Could Not Be Opened" << endl;
[Code] ....
View 5 Replies
View Related
Dec 8, 2014
I have a vector of int,
Code:
vector<int> row_numbers{1,2,3,4,5,6,7,8,9};
I want to sequentially remove one element at a time starting with the first. When the second element is removed, the first element needs to go back in. The sequence would look like
Code:
// original vector, row_numbers.size()=9
row_numbers{1,2,3,4,5,6,7,8,9};
// trimmed vector, row_numbers_trim.size()=8
[Code] .......
I have been working under the assumption that the best method would be to have row_numbers remain untouched and work on a copy. For each step in the sequence, you would create row_numbers_trim as a copy of row_numbers, and then remove an element from row_numbers_trim.
Code:
// position being removed
int counter = 0;
// copy original vector
row_numbers_trim = row_numbers;
// remove the first element from the copy
row_numbers_trim(row_numbers_trim.begin()+counter);
All you would have to do here is to increment counter in a loop. is there a better way?
View 8 Replies
View Related
Jul 15, 2013
I have N vectors which look like this:
[1→m] [m+1→2m] [2m+1→3m] [3m+1→4m] [4m+1→5m]..... [{(N-1)m}+1→Nm]
I want to select 1 element from each vector without duplication of any combinations. Essentially only when all combinations are done with 1st element in first vector ,only then it should move to next element in first vector.
Say i have elements :[123] [456] [789]
my combinations should be like
147
148
149
157
158
159
167
168
169
247....
Also, I cant have any repetitions and only after all combinations of 1 are done only then the loop has to move to next combination ie 247 combination and so on.
I tried NCK (n choose k) command but it gave me random combinations. How should i go about it with using minimal for loops?
View 2 Replies
View Related
Nov 30, 2013
I started making something for my class and the thing im getting stuck with is this function:
void ucitajOdgovore(string asocijacija[21]){
int brojac=0;
ifstream fajl;
string putanja;
/*srand(time(NULL)); int random=(rand() %5) +1;
switch(random){
[Code] ....
In the main, i pass real string array "asocijacije" in function which i use in it, and when i use it after this fun. i get an empty array. Its like it didnt happend and i cant see where i went wrong.
View 2 Replies
View Related
Jan 6, 2015
I am new in c programming. I want to write a function that will count the empty line of the file and display the content.
/* ***************************
** creator: firstprint *
******************************/
#include <stdio.h>
/* function that will identify if line is empty or not */
is_empty(char *buffer) {
while(isspace(*buffer)) buffer++;
if(*buffer==0x00) return 1;
[Code] ....
View 4 Replies
View Related
Dec 31, 2014
Code:
// Write a function called insertEntry() to insert a new entry into a linked list.
Have the procedure take as arguments a pointer to the list entry to be inserted (of type struct entry as defined in this chapter), and a pointer to an element in the list after which the new entry is to be inserted.
// The function dveloped in exercise 2 only inserts an element after an existing element in the list, thereby prenting you from inserting a new entry at the front of the list.
(Hint: Think about setting up a special structure to point to the beginning of the list.)
#include <stdio.h
struct entry1 {
int value;
struct entry1 *next;
};
[code]...
This is a working version of the exercise, but I don't think I'm doing what's asked. I was able to add an element to the beginning of the list using an if statement, not creating a special structure that points to the beginning of the list. How would I go about creating a special structure that points to the beginning of the list to add a new element at the beginning of the list?
View 8 Replies
View Related
Apr 10, 2014
I have a basic question regarding 2d vectors. The following code makes a 2d vector and fills it with a matrix of integers. The vector tempVector3 gets added as a new row to the matrix. But what if I wanted to add the tempVector3 as a new column instead. How would this be done in the simplest way?
#include<iostream>
#include<vector>
int main(){
std::vector<std::vector<int>> numbers;
std::vector<int> tempVector1;
tempVector1.push_back(2);
[Code] ....
View 5 Replies
View Related
Oct 10, 2013
I have a vector of structs.
struct myStruct{
string text;
int num;
};
vector<myStruct> foo;
And I am attempting to print the text followed by a space, then the number. Like so:
foobar 5
But when trying to print my vector using
ofstream outputFile;
outputFile.open ("file.txt");
for(int i = 0; i < foo.size(); i++) {
outputFile << foo[x].text << " " << foo[x].num << endl;
}
It prints like
foobar
5
moretext
8
With an extra newline and space. How to get rid of it and print it on the same line.
I have checked that text does not include new line character at the end. Also, it seems to print correctly using cout, but not print correctly to output file...
View 1 Replies
View Related
Sep 20, 2014
I am writing this program that is supposed to read a file, put the data into an array, alphabetize, count how many times each word appears and print to an output function. I posted before on how my program had an error when I ran it but I have fixed that. Now my outputArray file is empty. It gets created but there's nothing in it.
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
using namespace std;
//global to this file
[Code] .....
View 3 Replies
View Related
Feb 1, 2013
I am adding int type into vector called "vi" several times like this.
std::vector<int> vi;
void addFunc(int *a, int cnt) {
vi.erase(vi.begin(), vi.end());
vi.clear();
for(int i=0; i<cnt; i++)
vi.push_back(a[i]);
}
and I call the addfunc N times every sec.
And sometimes it has runtime error on vi.push_back line.
(called stack says "_CrtIsValidHeapPointer")
View 5 Replies
View Related