0

我想从文本文件中读取,文件的格式是

方法 1
方法 2
插入 3 “James Tan”

我目前正在使用 ifstream 打开文本文件并读取项目,但是当我使用 >> 读取行时,这导致名称没有被完全读取为“James Tan”。下面附上代码和输出。

ifstream fileInput; 

  if(fileInput.is_open()){
       while(fileInput.good()){
  fileInput >>methondName>>value>>Name;
    ......

输出

methodName = Method, Method, Insert
value = 1, 2, 3 (must be a usigned integer)
Name = James

处理读取行和内容的更好方法是什么。有人告诉我getline。但我知道 getline 完全读取为一行,而不是一个单词一个单词。

接下来是 fstream 真的快吗?因为,我想处理 500000 行数据,如果 ifstream 不快,我还有什么其他选择。

请就此提出建议。

4

1 回答 1

3

方法 1
方法 2
插入 3 “James Tan”

我认为您的意思是该文件由几行组成。每行要么以单词“Method”或单词“Insert”开头,在每种情况下都后跟一个数字。此外,以“插入”开头的行末尾有一个多词名称。

是对的吗?如果是这样,请尝试:

ifstream fileInput("input.txt");
std::string methodName;
int value;
while ( fileInput >> methodName >> value ) {
  std::string name;
  if(methodName == "Insert")
    std::getline(fileInput, name);

  // Now do whatever you meant to do with the record.
  records.push_back(RecordType(methodName, value, name); // for example
}
于 2013-02-13T17:29:50.387 回答