I'm able to convert an integer to a vector<unsigned char> and back. However, when I try to use a nearly identical function designed for the long long data type, the last byte or two is broken.
Program code:
long long num = 9223372036854775551LL;
cout << "Before: " << num << endl;
vector<unsigned char> data = getBytes(num);
num = getLongLong(data);
cout << "After: " << num << endl;
Code for converting between vector<unsigned char> and long long:
Code:
vector<unsigned char> getBytes(long long value) {
int bytes = sizeof(value);
vector<unsigned char> data(bytes);
for (int i = 0; i < bytes; i++)
data.at(i) = (unsigned char)( value >> ((bytes-i)*8) );
How to output vector contents using the push_back function. My program reads in values just fine, but it does not output anything and I've been stuck on why.
here is my code:
#include <iostream> #include <array> #include <vector> using namespace std; int duplicate( vector < int > &vector1, const int value, const int counter)
Code: class moClassValueContainer { public: moClassValueContainer(); moClassValueContainer(string,int); [Code] ....
In my main.cpp, I have blow loop
Code: for (xml_node tnode = it->first_child(); tnode ; tnode = tnode.next_sibling()) { Container tmpContainer(tnode); if (tmpContainer.getType() == SINGLE) { string t = tmpContainer.getName();
[Code] ....
I cannot push_back(t). I examined the code with debugger, t has correct string value assigned, but even after 20-30 iterations, there is no element for headerFields vector.
#include <string> #include <vector> using namespace std; class Question { string title; vector<Thing*> posAns; vector<Thing*> negAns;
[Code] ....
error: no instance of overloaded function 'std::vector::push_back()' matches the arguments list argument types are (const Thing *) object type is: std:: vector<Thing *, std::allocator<Thing *>>
So it cannot be constant, what if I just leave it non-constant? Will it be safe?
Ok so I'm in a programming 1 class working with c++. I have the following assignment:
Write a C++ program that: asks for and accepts the Percentage earned with as a double (i.e. 75.45) rounds it to an integer (>= .5 rounds up, <.5 rounds down.) prints the original Percentage and the corresponding Grade and Points exactly as shown below. prints an error message for any input that is less than 0 or greater than 100.
For example, if user enters 89.4, the program prints out: Percentage: 89.4% Grade: B Points: 3.00 You must use an if-else statement to do this in your program. Use fixed and precision output manipulators (see Ch. 3) to display the values with the exact precision shown above.
IMPORTANT: Each if statement condition should contain only one comparison! read this again This means code that is similar to this is NOT okay: if (Percentage >= 80.00 && Percentage <90.00) This code is not acceptable because the if statement condition above has two comparisons. (Hint: If you order your if-else chain statements correctly, you will only need one comparison in each.)
I have the program working, but I'm pretty sure I'm not rounding how my professor would like it to. This is my code:
So my issue here is the rounding, and then theres the converting the double percetnage to an integer. In my next assignment I have to write the program with a switch statement.
For Example, it the entered string is: 0324152397 I want it to get stored in an array like-[0] [3] ...[7]. Secondly the string entered may be of any length that is defined only at run time. So, I also need to calculate string length. How could I do that.
In my homework, x is unknown. but don't worry, I wont ask for the full code. I just need the part where you change the int into a string/array of char.
I am working on an assignment about converting an integer number to its 2's complement presentation. The binary representation is consisting of a single linked list.
As we all know, the steps of this converting is to taking the reminder of the absolute value, then flipping the 1 to be 0, and the 0 to be 1 in the binary number. And the last step will be to add 1 to the binary number invers.
I wrote a code that implements every thin correctly. However, when I reached the part of adding 1, the program was hanged.
int Absolute; //the first step is to convert the number to the binry reprezentation Absolute = abs (value);// by take the Absolute value of the negative number, then find the while (Absolute !=0) //the binary reprezentation { int res; res= (Absolute % 2); pushFront (res); Absolute /=2 ;
I have saved the contents of an int vector to a txt file and the numerical data was converted into a c-string. Nov I need to import and read the contents back into my program but I have not been able to convert c-string numerical data back into ints.
I am getting a string from the consle and that all works fine. I'm expecting a string of number, ie 123456.... I store that fine in my string object. I then need to take each individual number, ie 1, and put it in a vector then take the next number, ie 2, and put that in the next element in my vector.
Everything i've found and does eaither takes the entire string and stores it as an int, or takes the ascii representation of the number and stores that. How do I seperate each individual number and store them seperatly. below is a few different variations i've tried that doesn't produce my desired results.
cout<<"Please type the memory memory frames (numbers 0-9) to be used to simulate the input memory "<<endl; cout<<"Your input: "; string line=""; cin>>line; cout<<" Please wait while your input is processed and validated..."<<endl;
[code].....
the only thing i havn't tried yet is string streams and i don't necessarly like using them. Am i going to have to go that route? will that even work?
EDIT:I forgot to mention that this is being done on linux and then ported to unix.
I get so close, and then it seems my brain shuts down ... I need to write a program that outputs a histogram of student grades for an assignment. The program should input each student's grade as an integer and store the grade in a vector. Grades should be entered until the user enters -1 for a grade. The program should then scan through the vector and compute the histogram. In computing the histogram, the minimum value for a grade is 0, but your program should determine the maximum value entered by the user. Use a dynamic array to store the histogram. Output the histogram to the console. For example, if the input is:
20 30 4 20 30 30 -1
Then the output should be:
Number of 4’s: 1 Number of 20’s: 2 Number of 30’s: 3
I can't quite get my output to look like that:
/* This program will display the histogram of student grades for an assignment */ #include <iostream> #include <vector> #include <stdlib.h> #include <conio.h>
I am trying to assign the integer value to unsigned char array. But it is not storing the integer values. It prints the ascii values. Here the code snippet
The values which are stored in uc[] is ascii values.I need the integer values to be stored in uc[]. I tried to do it with sprintf. but the output is not as expected. if I print the uc[i] it should diplay the value as 0,1,2....99.
changing a 9 digit integer into a new 9 digit integer through simple mathematical operations. For example, I need to change 123456789 into the new digit 456123789. Sometimes I need to change a 9 digit integer into an 8 digit integer. An example is 789062456 into 62789456. I can ONLY use simple mathematical operations (addition, subtraction, multiplication, division and modulo).
If we use bitwise-shift to shift all bits to the right by 2, x is 0:
00000000000000000000000000000000
If we then do a bitwise leftshift on x by 30, do we end up with:
11000000000000000000000000000000 or 00000000000000000000000000000000
In other words, when we perform right shift which clips away the least most significant bits, and then do a left shift, is it possible for those bits to reappear?
Here is a simplified version of my Menu class, where submenus can be inserted arbitrarily deep. I need to add a new functionality "go back to previous menu", which I would like to be activated by entering 0 (universal command for all Menu instances). I considered the Memento Pattern, but that doesn't seem to quite fit. add that functionality to my Menu class.
#include <iostream> #include <cstring> using namespace std; const int END = -1, NO_SUBMENU = 0;
I am trying to use push back in a 2D vector but I don't know how to. This is what I have:
vector <vector <BigInt> > matr;
for (BigInt i=0;i<rij;i++) { for (BigInt j=0;j<kolom-1;j++) { matr.push_back().push_back((i+1)^(pow-j)); } }
I quickly invented something but that doesn't work obviously. it should be equivalent to this: (the only problem in the code below is that those indexes don't exist yet that's why I need push_back())
for (BigInt i=0;i<rij;i++) { for (BigInt j=0;j<kolom-1;j++) { matr[int(i)][int(j)]=(i+1)^(pow-j); } }
I'm new here! I just wanted to ask, how can I go back to Main menu using this code that I have made (I know it's not yet finish I'm using Visual Studio c++ 2010! I there are any errors in my codes
Project: Computer Shop System
#include <iostream> #include <string> using namespace std; int pcnum[5],x; //choice pc int pc; int i; //name int y; //hours
I am writing another program and I cannot find for the life of me how to loop the program back to the start of a function.
Code: #include <stdio.h> #include <stdlib.h> int main(void) { int choice; char band1, band2, band3, band4; printf ("This program calculates the resistor value based on the colours of the wire. (enter the integer near the command) "); printf ("What would you like to do?
[Code].....
This is my current iteration of the program. Obviously, I haven't finished writing the case 1 of the first switch, but for the other ones. I thought that return main would cause the program to loop back to the beginning after executing the case, but I see that it is not the case (pun not intended). Anyways, what would I have to insert to cause the program to loop again (other than for case 3)? And another question, why is it that in scanf in the first case, the program only accepts two characters before finishing?