C++ :: Using Getline Multiple Times On One Line Of Input
Sep 15, 2014
I've been stuck on this for hours, and have scoured the internet for any insight on this particular issue with no luck.
I'll simplify the problem here. I have a lines in an input file:
John Smith 1234 Main St New York
Carol Thomas 5678 5th Ave Columbus
...
and I am reading into character arrays using code like this:
infile.getline(name,20);
infile.getline(street,15);
infile.getline(city,10);
but when I print the output using something like this:
outfile << "Owner Name: " << name << endl;
outfile << "Address: " << street << city << endl;
(let's pretend I included spaces between the address components, which I omitted to save space)
I get an output file of:
Owner Name: John Smith
Address:
The output stops after the name variable, which I believe is stored correctly. I don't think anything is storing in the address pieces, this is the problem.
I think it's because I'm not using getline() properly in this case. Can you string together multiple getline()s like that?
If this was my design, I'd read in strings instead, but that is not possible in this case.
View 6 Replies
ADVERTISEMENT
Jun 4, 2013
I have written a C++ program I have multiple of CSV file used as input, which I open one at a time and close it after extracting data to a output file which is the only file.
I run getline(inFile,line);
outFile << line << endl;
I run this code, and only part of it is goes to the output file I got, also have spacing randomly to specific file and inconsistent
But when I slower the code, like system("Pause") in the loop, I can get extract what I want perfectly....
Is my program running to fast, why getline would be skipping part of what things I want?
View 11 Replies
View Related
Aug 21, 2014
text file is
hello
there
void readFile(char[], ifstream&);
address records[numbersAdd];
int main(){
char xml[30];
cout<<"Enter file name ";
[code].....
View 6 Replies
View Related
Feb 16, 2014
I used getline to import EMPLOYEE's First and Last Name from a txt file. After calculating the weights ans stuff. Now when i try to write to output txt file am having the below issue in which its not putting it in one line.
***CODE***
fout << "Note: This report for " << employee << " was prepared according to the fair practice of the University." << endl ;
***THIS IS WHAT ITS PRINTING***
Note: This report for FIRSTNAME LASTNAME was prepared according to the fair practice of the University.
I also tried like this;
***CODE***
fout << "Note: This report for " << getline(fin, employee) <<" was prepared according to the fair practice of the University." << endl ;
***THIS IS WHAT ITS PRINTING***
Note: This report for 0 was prepared according to the fair practice of the University.
this second code puts everything in one line but its showing 0 (zero) instead of the employee's first and last name.
View 4 Replies
View Related
Sep 11, 2014
I am reading a file of text. I want to read in every word, but no spaces or newlines. "word" is a string, and "c" is a char (used for getting rid of white space. The problem: I can get rid off spaces perfectly, but newlines remain in "word" if it comes before the terminating character ' '.
My code:
while(infile.good() && !infile.eof()) {
while(infile.peek() == ' ')
infile >> c;
while(infile.peek() == '
[Code] .....
View 3 Replies
View Related
Aug 10, 2014
Taken from Accelerated C++ book, I modified those code to use getline() instead of std::cin >> only to find out that the output has extra line. Why is that so?
#include <iostream>
#include <string>
int main() {
std::cout << "What is your name?" << std::endl;
std::string name;
[Code] .....
What is your name?
Naruto
*****************
* *
* Hello, Naruto
*
* *
*****************
Notice one asterisk after the greeting where it should be in the same line as the greeting.
View 4 Replies
View Related
Apr 5, 2014
so i have to read a text file with an unknown number of lines and allocate memory to for the number of items in the text file.currently i read the entire file(counting the number of lines). i allocate memory according to the number of lines read and then use fseek() with an offset of zero to allow for the second read .
View 5 Replies
View Related
Sep 7, 2014
I have a question about SDL and drawing sprites (SDL surfaces). My idea is that the user can create a wall of separate sprites by create one sprite each time in the current mouseX and mouseY position, when the user push down the e-key. The problem is that I have no idea how I could draw the same sprite multiple times without to delete the previous one.
View 3 Replies
View Related
Sep 19, 2014
I've been working on a program that uses a reference counting class that I've written which works fine for objects that inherit from it however I now need to have the following setup:
class SBComponent : private Refcounted { /*stuff*/}
class ProxiedComponent : public SBComponent, private Refcounted {/*stuff*/}
The compiler gives the following warnings
warning: direct base ‘Refcounted’ inaccessible in ‘ProxiedComponent’ due to ambiguity
And then several repeats of the error:
error: request for member ‘bk’ is ambiguous
Back *b = bk<ProxiedComponent>();
bk is a templated function that's defined in Refcounted and returns a pointer of type <template arg>::Back (ProxiedComponent::Back in this case).
I don't understand why the call to bk is ambiguous as although there's two instances of Refcounted (there needs to be with the way I've designed it so I can't make it virtual) it's inheritance is private in both cases so there should only be one instance of it visible in ProxiedComponent.
View 7 Replies
View Related
Nov 6, 2014
I've been struggling with an object when trying to add it to a list with [Listname].push_back. You see, I have a list with some objects that will be rendered in the screen (Called objects) and a function to create a text box with some text. The function in question is the following:
void reprEv(int evNum, ALLEGRO_BITMAP *txtbxim) //Event to call, default text box image.
{
textBox *txtBox = new textBox("Line 1 ", "Line 2 ", "Line 3 ", "Line 4 ", "Line 5 ", textboximage);
objects.push_back(txtBox);
[Code]....
(txtNum is increased then space is pressed, and when certain screen (maxScreen) have been shown, then it will go to the playing state)
My problem begins when the text box is created, because it's supposed to add only 1 text box to objects list, but instead adds hundreds of text boxes to objects.
View 1 Replies
View Related
Apr 17, 2014
My application calls malloc in multiple subroutines, finally releasing all using free. This is done using my zalloc library (see my other post: [URL] .....
Somehow, when the applications tries to detect the available ammount of memory at the end of the test (allocating, freeing, testing), the freemem function gives me about 4-6MB less memory than at the start of the test? (out of 21MB available on the device at the start).
All memory is allocated and freed using the malloc/free routines within the library, with the exception of the SDL functions, which are registered externally on allocation and release.
View 3 Replies
View Related
Oct 20, 2013
When you have to write data on a file in binary mode multiple times (without closing the file), is the put pointer left where you ended writing the last time, or do you have to use tellp() or seekp() again and again to make sure you write at the right place?
I would have the same question about the get pointer, does he stay in place after you're done reading something (without closing the file, of course), or do you have to set it back at the right place with seekg() ??
View 5 Replies
View Related
Jun 6, 2014
Down on line 74, it does not wait cor an input, it simply says ...you failed.
#include <iostream>
#include <string>
#include <Windows.h>
#include <cstdlib>
using namespace std;
//prototyping--
void flater();
[Code] ....
View 6 Replies
View Related
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
Jul 2, 2013
int main() {
char StudentName[4][10] = { "Hermine", "Paul", "Gertrude", "Leon" };
cout << "Student Names";
cout << "
Student 1: " << StudentName[0];
[Code] ....
This code work fine...but i want to take name from user..how i store it in character array through getline()..
View 6 Replies
View Related
Mar 15, 2015
I'm trying to write a function in C that calculates the average test score given by the user an arbitrary number of times...
View 14 Replies
View Related
Jan 31, 2013
i don't understand why this program crash if i'll insert a number more of 5 times... i want to allocate dynamically a vector if the input of the user exceeds 5 times... this is the code:
Code:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int * vettore, n;
unsigned int len=1;
}
[code]....
View 2 Replies
View Related
Apr 1, 2014
My professor asked my to make a program that makes the "FCFS","SWJ" operations using any programming language actually i preferred c++ i like it more than java so i started in it but i'm facing a little problem ,,, which is i cant enter multiple inputs with a space tabs between them if this possible , for example : i want to get the arrival time and execution time from user
arrival (spaces " ") execution >> i want the input be like this
input1 (spaces " ") input2
View 10 Replies
View Related
Feb 3, 2013
I want to take multiple line string in c++. How can I take this.
Such as I want to take this as input:
HELLO MY LOVE, I M HAPPY BECAUSE SOON I WILL BE TO YOUR SIDE.
THIS TIME WITHOUT YOU HAS BEEN ETERNAL.
I INVITE YOU TO THE ZOO ONE TO SEE THE ZEBRAS AND GORILAS.
View 2 Replies
View Related
Mar 26, 2013
I'm fairly new to C++ and have been understanding until Ive hit this rock. Im trying to figure out how to indicate whether or not a first command line argument interpreted as an integer is a multiple of the sum of its own digits. I understand that logic as if you type 20 = 2(2+0) where 2 is a multiple and 3113 = 8 which is not a multiple but i feel hopeless trying to set it up. And here is my code.
Code:
#include <iostream>
using namespace std;
int main(int argc, char*argv[])
{
[Code] .....
View 1 Replies
View Related
Jul 28, 2014
My question is on c++ strings. At the moment my program is reading input in one line at a time after the user presses enter.
I want to read multiple values in on a single line. Example: "apple banana orange end" ... How would I do this?
MAIN Code:
#include "Header.h"
#include "Orange.h"
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
[Code] ......
View 11 Replies
View Related
May 6, 2013
So I have this text file that I am trying to read from and store the values of each line in multiple variables. Let's say my text file contains
AXSYZ3482 Tom 100 112 and my code below here works fine when the lines in the text file is separated by spaces.
Code:
while (fscanf(fp, "%s %s %d %d
", userID, name, &startLoc, &endLoc) != EOF) {
printf("%s %s %d %d
", userID, name, startLoc, endLoc);
}
But let's say my file was to look like this instead.
AXSYZ3482:Tom:100:112
But if i try this below...
Code:
while (fscanf(fp, "%s:%s:%d:%d
", userID, name, &startLoc, &endLoc) != EOF) {
printf("%s %s %d %d
", userID, name, startLoc, endLoc);
}
It seem to store the entire line in userID including the ":". I want to ignore the ":"'s and store everything in between in respective varibles in the order specified above.
So first string in userID, then ignore the :, then second string in name, and ignore the next :, and so forth.
View 4 Replies
View Related
May 6, 2013
So I have this text file that I am trying to read from and store the values of each line in multiple variables.
Let's say my text file contains
AXSYZ3482 Tom 100 112
and my code below here works fine when the lines in the text file is separated by spaces.
while (fscanf(fp, "%s %s %d %d
", userID, name, &startLoc, &endLoc) != EOF) {
printf("%s %s %d %d
", userID, name, startLoc, endLoc);
}
But let's say my file was to look like this instead.
AXSYZ3482:Tom:100:112
But if i try this below...
while (fscanf(fp, "%s:%s:%d:%d
", userID, name, &startLoc, &endLoc) != EOF) {
printf("%s %s %d %d
", userID, name, startLoc, endLoc);
}
It seem to store the entire line in userID including the ":". I want to ignore the ":"'s and store everything in between in respective varibles in the order specified above.
So first string in userID, then ignore the :, then second string in name, and ignore the next :, and so forth. How I can accomplish this?
View 2 Replies
View Related
Mar 13, 2013
I want to be able to read 2 line input, then safe them in separate arrays.
line1 input=array1
line2=array2
View 7 Replies
View Related
Dec 8, 2014
I am trying to get my input from user in the same line with certain width between but my output is not in the same line. my third variable which is fruit[i] is shown one line below . How I can fix this ?
#include <iostream>
using namespace std;
int main () {
int staff[3] , fruit[3];
[Code] ....
View 5 Replies
View Related
May 27, 2014
How to input two variables in the same line? Like when i type 12 and press enter, 1 must be assigned to a, and 2 must be assigned to b. I want it to be entered on the same line, and press enter only once. How do i do that?
View 5 Replies
View Related