C++でgetline関数を使う方法は?
C++ では、getline() は入力ストリームから1行のテキストを読み込むために使用する関数です。その基本的な使い方は次のとおりです。
#include <iostream>
#include <string>
int main() {
std::string line;
std::cout << "Enter a line of text: ";
std::getline(std::cin, line);
std::cout << "You entered: " << line << std::endl;
return 0;
}
上記例では、getline() 関数は標準入力の値(std::cin)から一行分の文字列を読み取り、lineという文字列変数に保存します。そして、そのテキスト行が出力されます。
getline()関数の形式は次のとおりです。
std::istream& getline(std::istream& is, std::string& str, char delim);
3 つの引数を取ります。
- テキストの1行を読み取る入力ストリームオブジェクトです。
- str: 読み込んだ文字列を格納するための文字列型オブジェクト
- 区切り記号 (デリミタ): 行区切り文字を指定するために使用できるオプションのパラメータ。デフォルトでは「\n」(改行) です。
上記に加え、getline()関数を使用して、ファイルストリームからテキストの行を読み込むこともできます。
例によって
#include <iostream>
#include <fstream>
#include <string>
int main() {
std::string line;
std::ifstream file("example.txt");
if (file.is_open()) {
while (std::getline(file, line)) {
std::cout << line << std::endl;
}
file.close();
}
return 0;
}
上記の例では、ifstreamファイルストリームと共にgetline()関数が使用されています。これによりexample.txtという名前のファイルからテキストを一行ずつ読み取り、一行ごとのテキストを標準出力ストリームに出力します。