1

C++ では、istream& operator>>「テキストのように」データを読み取るために使用できます。Dで同等のものは何ですか?

私の試み:

入力.txt

c 1033
90.432

input_test.d

import std.stdio;
import std.stream;

void main()
{
    auto inputFile = new BufferedFile("input.txt");
    char c;
    int i;
    double d;

    inputFile.read(c);
    inputFile.read(i);
    inputFile.read(d);
    writeln(c, '\t', i, '\t', d);
}

出力

c   858796320   4.90559e-62
4

1 に答える 1

4

D には、さまざまなユースケースを便利にするために、ファイルからデータを読み取る方法がたくさんあります。ここにあるいくつかの:

特定のケースに基づいて、おそらく slurp または readf を使用することをお勧めます。他のオプションは、行を読み取って必要なフィールドに分割し、 std.conv.to を使用してテキスト表現を解析することです。

double d = to!double(somestring);

要約すると、すべての行が同じ形式である場合、slurp が最適な方法です。それ以外の場合は、自分にとって最も便利なものを決定する必要があります。

于 2012-06-18T16:00:39.260 に答える