【问题标题】:How to read in individual characters from txt.file in C++?如何从 C++ 中的 txt.file 中读取单个字符?
【发布时间】:2021-07-01 20:51:18
【问题描述】:

我有一个逐行包含单个字符的 txt 文件。当 getline 函数接收字符串时,我对如何逐行读取该字符串感到困惑?

还可以将 char 存储在向量中吗?或者如果我将这些单个字符存储为字符串,它仍然可以工作吗?

【问题讨论】:

  • ifstream 的ifstream 有一个重载的char,你试过吗?
  • 查看this C++ reference 并花几天时间阅读good book on programming in C++。从现有的开源 C++ 软件中汲取灵感,例如 FLTK、RefPerSys、fish。另请阅读您的 C++ 编译器(例如 GCC 将被标记为 g++ -Wall -Wextra -g)和调试器(例如 GDB...)的文档
  • 请注意,StackOverflow 不是我的家庭作业网站

标签: c++ input command-line-arguments


【解决方案1】:

代码如下:

vector<char> res;
int count = 0;

ifstream fin;
fin.open("***.txt");
string str;
while (!fin.eof())
{
   getline(fin, str);
   res[count++] = str;
}
fin.close();

【讨论】:

  • Why is iostream::eof inside a loop condition (i.e. while (!stream.eof())) considered wrong? 此外,这也很复杂,因为您可以轻松地执行 fin &gt;&gt; std::noskipws/std::skipws &gt;&gt; yourCharVariable 然后将其推送到向量。 另外,您不会在每次循环运行后将count 设为 0,这可能是个问题。
  • 实际上,我不确定这是否正确。当向量为空时如何索引它?并且 OP 明确要求 char 由 char 执行此操作,而不是整行,这不是。
  • res[count++] = str; 访问超出范围的向量。 push_back 是正确的方法。然后不需要count,因为向量的大小是可用的。
猜你喜欢
  • 1970-01-01
  • 2017-04-01
  • 2015-12-09
  • 2013-01-03
  • 1970-01-01
  • 2022-11-28
  • 1970-01-01
  • 2012-02-28
  • 2013-04-20
相关资源
最近更新 更多