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 有很多从文件中读取数据的方法,以方便各种用例。这里有一些:

根据您的具体情况,您可能需要使用slurpreadf。您的另一个选择是读取行并将它们拆分为您想要的字段,然后使用 std.conv.to 来解析文本表示:

double d = to!double(somestring);

总之,如果每一行都有相同的格式,slurp 是最好的方法。否则,您将不得不决定什么对您最方便。

于 2012-06-18T16:00:39.260 回答