---
name: "stringline"
section: "3bobcat"
platform: "linux"
package: "libbobcat-dev"
version: "6.07.01-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/stringline"
---

# stringline(3bobcat)

extracting lines using operator\>\>

## NAME

FBB::StringLine - extracting lines using operator\>\>

## SYNOPSIS

**#include \<bobcat/stringline\>**\

## DESCRIPTION

The standard *operator\>\>(std::istream &, std::string &)* string extracion operator extracts the first \`word’ from a stream. In cases where the intent it to extract lines from the stream this operator cannot be used, but *getline(std::istream &, std::string &)* is usually called.

However, *getline* is not called by many tools of generic algorithms, like the *istream\_iterator*.

The class (actually: struct) *StringLine* was simply derived from *std::string*, and defines its own *operator\>\>*, reading the next line from the specified *std::istream*.

## NAMESPACE

**FBB**\
 All constructors, members, operators and manipulators, mentioned in this man-page, are defined in the namespace **FBB**.

## INHERITS FROM

*std::string*

## CONSTRUCTORS

*StringLine* is an empty shell around *std::string*. It does not explicitly define constructors.

Copy and move constructors (and assignment operators) are available.

## OVERLOADED OPERATOR

- o

  **std::istream &operator\>\>(std::istream &in, StringLine &str)**:\
   The extraction operator returns the next line on *in* in *str*, calling *getline(std::istream &, std::string &)*.

## MEMBER FUNCTIONS

All members of **std::string** are available, as **FBB::StringLine** inherits from these classes.

## EXAMPLE

The following example extracts all lines from *std::cin* and adds them to the *std::vector\<std::string\> lines*:

```
#include <iostream>
#include <algorithm>
#include <iterator>
#include <vector>
#include <bobcat/stringline>
using namespace std;
using namespace FBB;
int main()
{
    vector<string> lines;
    copy(
        istream_iterator<StringLine>(cin), istream_iterator<StringLine>(),
        back_inserter(lines)
    );
}
```

## FILES

*bobcat/stringline* - defines the class interface and *operator\>\>*.

There are *StringLine* object files in the Bobcat library, so linking to Bobcat when using *StringLine* is not necessary.

## SEE ALSO

[**bobcat**(7)](/bobcat/7.md)

## BUGS

None Reported.

## BOBCAT PROJECT FILES

- o

  *https://fbb-git.gitlab.io/bobcat/*: gitlab project page;

Debian Bobcat project files:

- o

  *libbobcat6*: debian package containing the shared library, changelog and copyright note;

- o

  *libbobcat-dev*: debian package containing the static library, headers, manual pages, and developer info;

## BOBCAT

Bobcat is an acronym of \`Brokken’s Own Base Classes And Templates’.

## COPYRIGHT

This is free software, distributed under the terms of the GNU General Public License (GPL).

## AUTHOR

Frank B. Brokken (**f.b.brokken@rug.nl**).
