0

我正在尝试编写一个简单的程序来测试使用键盘的用户效率(现在只有每分钟的字数和准确性),但我在文件操作部分遇到了困难。我想要一个存储在 .txt 文件中的单词列表(以便于编辑),如下所示:

    cheese
    computer
    photograph
    download
    etc...

我希望能够将 .txt 文件作为一个整体转换为二进制文件,每个单词都进入 .dat 文件中的一个条目,但我很难弄清楚 fstream 如何从 .t​​xt 读取数据文件。使用 fstream 从列表中读取单词以便将它们添加到二进制文件中的条目中的最简单方法是什么?

4

2 回答 2

1

就像黄昏说的那样,扩展没有任何意义。文件以 ASCII 格式或二进制格式存储。

如果文件是 ASCII 文件,则每个字节都存储为其 ASCII 等效文件。二进制文件只是原始数据,无需任何转换即可存储。就您的问题而言,您可以执行以下操作:

  1. 像往常一样读取输入文件(ASCII)
  2. 使用 fwrite 将其写回另一个文件
于 2012-05-25T20:18:44.187 回答
-1

从 fstream 读取实际上非常简单。«getline» 读取每一行,直到 «fstream.is_good» 返回 «false»。还可以查看cplusplus.com 上的教程。这应该这样做:

#include <fstream>
#include <iostream>
#include <string>

using namespace std;

int main() {
  fstream myfile;
  string line;
  myfile.open("sample.txt");
  if  ( myfile.is_open() ) {
    while ( myfile.good() ) {
      getline( myfile, line);
      // conversion and output function goes here
      // this example just prints it to stdout
      cout << line << endl;
    }
    myfile.close();
  } else {
    cerr << "could not open file" << endl;
  }
  return 0; 
}
于 2012-05-25T21:06:52.747 回答