473,396 Members | 1,772 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

Stringstreams Getline

Hi,

How do i use stringstreams getline function to extract lines from an
existing string?

Say i have: string strlist = "line1\r\nLine2\r\nLine3\r\n";

I want to extract each line out into a vector array of strings, but i
cant get stringstream working :(

This is the sort of code i have tried:

// istream& getline (char* s, streamsize n )

stringstream MyStream;
MyStream<<strlist;
string extracted_line = MyStream.getline(mystring, 0);

Clearly thats very wrong, but im not sure how to correctly use
getline()? Also how would i loop this up so it extracts all the lines
in the string? Would my condtion just be checking extracted_line[i] !=
std::string::npos?

Thanks for any help,
Jack

May 14 '07 #1
3 25173
JackC wrote:
Hi,

How do i use stringstreams getline function to extract lines from an
existing string?

Say i have: string strlist = "line1\r\nLine2\r\nLine3\r\n";

I want to extract each line out into a vector array of strings, but i
cant get stringstream working :(

This is the sort of code i have tried:

// istream& getline (char* s, streamsize n )

stringstream MyStream;
MyStream<<strlist;
string extracted_line = MyStream.getline(mystring, 0);
#include <string>
#include <sstream>
#include <istream>
#include <vector>

int main()
{
std::string strlist("line1\r\nLine2\r\nLine3\r\n");
std::istringstream MyStream(strlist);
std::vector<std::stringv;
std::string s;
while (std::getline(MyStream, s))
v.push_back(s);
return 0;
}
>
Clearly thats very wrong, but im not sure how to correctly use
getline()? Also how would i loop this up so it extracts all the lines
in the string? Would my condtion just be checking extracted_line[i] !=
std::string::npos?

Thanks for any help,
Jack
May 14 '07 #2

red floyd <no*****@here.dudewrote in message...
JackC wrote:
Hi,
How do i use stringstreams getline function to extract lines from an
existing string?
Say i have: string strlist = "line1\r\nLine2\r\nLine3\r\n";

I want to extract each line out into a vector array of strings, but i
cant get stringstream working :(

This is the sort of code i have tried:

// istream& getline (char* s, streamsize n )

stringstream MyStream;
MyStream<<strlist;
string extracted_line = MyStream.getline(mystring, 0);
#include <string>
#include <sstream>
#include <istream>
#include <vector>

int main(){
std::string strlist("line1\r\nLine2\r\nLine3\r\n");
std::istringstream MyStream(strlist);
std::vector<std::stringv;
// std::string s;
// while (std::getline(MyStream, s))
// v.push_back(s);

// ref: A. Koenig/W. Brown
for( std::string line; std::getline( MyStream, line ); ){
v.push_back(line);
} // for(line)
return 0;
}
Why? Because you can! <GHi red.

To OP (from a post by Gavin Dean):
std::getline allows you to choose any delimiter character you want. The
default is newline but you can change that. This shows how it works.

#include <string>
#include <sstream>
#include <iostream>
using namespace std;
int main(){
string input("abc\tdef\nghi");
istringstream iss(input);
string read_to_newline;
getline(iss, read_to_newline);
iss.str(input);
string read_to_tab;
getline(iss, read_to_tab, '\t');

cout << read_to_newline << "\n";
cout << read_to_tab << "\n";
}

--
Bob R
POVrookie
May 14 '07 #3
BobR wrote:
red floyd <no*****@here.dudewrote in message...
>
>#include <string>
#include <sstream>
#include <istream>
#include <vector>

int main(){
std::string strlist("line1\r\nLine2\r\nLine3\r\n");
std::istringstream MyStream(strlist);
std::vector<std::stringv;

// std::string s;
// while (std::getline(MyStream, s))
// v.push_back(s);

// ref: A. Koenig/W. Brown
for( std::string line; std::getline( MyStream, line ); ){
v.push_back(line);
} // for(line)
> return 0;
}

Why? Because you can! <GHi red.
Hi Bob. Actually, I had considered that construct, but used the while
loop construct, based on my estimate of OP's skills.
[redacted]
May 14 '07 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: Vikram | last post by:
Hi, I don't remember if it happened previously, but nowadays I'm having problem with using cin.getline function and cin>> function simultaneously. I have Visual Studio 6. If I use cin.getline...
5
by: vknid | last post by:
Hello, I have a question. Its probably a very newbish question so please be nice hehe. =D I have been reading through C++ Programming Fundamentals, and have come a crossed an example program...
1
by: ma740988 | last post by:
Consider: ifstrem MyFile("extractMe.txt"); string Str; getline(MyFile, Str); getline above extracts the contents of MyFile and place into the string object. Deduced using FROM/TO logic I...
10
by: Skywise | last post by:
I keep getting the following error upon compiling: c:\c++ files\programs\stellardebug\unitcode.h(677) : error C2664: 'class istream &__thiscall istream::getline(char *,int,char)' : cannot convert...
14
by: KL | last post by:
I am so lost. I am in a college course for C++, and first off let me state I am not asking for anyone to do my assignment, just clarification on what I seem to not be able to comprehend. I have a...
18
by: Amadeus W. M. | last post by:
I'm trying to read a whole file as a single string, using the getline() function, as in the example below. I can't tell what I'm doing wrong. Tried g++ 3.2, 3.4 and 4.0. Thanks! #include...
2
by: jalkadir | last post by:
I am trying to get character string from the user, to do that I use getline(char_type*, streamsize), but I get a segmentation fault??!! Can anyone give me a hand, what am I doing wrong? --snip...
5
by: allspamgoeshere3 | last post by:
Hi! I'm having trouble reading text lines from a file describing the levels for a simple game I'm creating. Inside the function that reads the content of the file there is a loop that basically...
33
by: Chen shuSheng | last post by:
I have a code: --------------------------- #include <iostream.h> #include <stdlib.h> int main() { int max=15; char line; getline(line,max); system("PAUSE");
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.