这应该是非常简单的事情。我只想从一个由空格分隔的标记组成的文本文件中读取数字和单词。在C#中怎么做?例如,在C++中,以下代码可用于读取整数、浮点数和单词。我不想使用正则表达式或编写任何特殊的解析代码。
ifstream in("file.txt");
int int_val;
float float_val;
string string_val;
in >> int_val >> float_val >> string_val;
in.close();
此外,每当读取一个记号时,应最多读取一个超出该记号的字符。这使得进一步的文件读取依赖于已读取的记号的值。以具体例子说明,考虑以下内容:
string decider;
int size;
string name;
in >> decider;
if (decider == "name")
in >> name;
else if (decider == "size")
in >> size;
else if (!decider.empty() && decider[0] == '#')
read_remainder_of_line(in);
解析二进制PNM文件也是为什么你希望在读取到完整标记后立即停止读取文件的好例子。
10 10.5 hello
ReadAllText和ReadAllLines也不能按预期运行。以解析二进制PNM文件为例。有一个带有空格分隔标记的头部,后面跟着二进制数据。阅读器应该一次只吃一个标记,并将剩余的文件保持不变。 - Joe