【发布时间】:2012-02-28 22:00:30
【问题描述】:
我正在尝试从 stdio 转移到 iostream,这被证明非常困难。我已经掌握了加载文件和关闭文件的基础知识,但我真的不知道流是什么,或者它们是如何工作的。
与此相比,在 stdio 中,一切都相对简单直接。我需要做的是
- 从文本文件中读取单个字符。
- 根据字符是什么来调用函数。
- 重复直到我读完文件中的所有字符。
到目前为止,我所拥有的……不多:
int main()
{
std::ifstream("sometextfile.txt", std::ios::in);
// this is SUPPOSED to be the while loop for reading. I got here and realized I have
//no idea how to even read a file
while()
{
}
return 0;
}
我需要知道的是如何获取单个字符以及该字符是如何实际存储的(它是字符串吗?一个 int?一个字符?我可以自己决定如何存储它吗?)
一旦我知道我认为我可以处理剩下的事情。我会将角色存储在适当的容器中,然后使用开关根据该角色的实际情况进行操作。它看起来像这样。
int main()
{
std::ifstream textFile("sometextfile.txt", std::ios::in);
while(..able to read?)
{
char/int/string readItem;
//this is where the fstream would get the character and I assume stick it into readItem?
switch(readItem)
{
case 1:
//dosomething
break;
case ' ':
//dosomething etc etc
break;
case '\n':
}
}
return 0;
}
请注意,我需要能够检查空格和换行符,希望这是可能的。如果我可以将数字存储在 int 中并将字符存储在 char 中,而不是使用一个通用容器,这也将很方便。如果没有,我可以解决它。
感谢任何可以向我解释流的工作原理以及它们的一切可能的人。
【问题讨论】:
-
读取单个“字符”的方法是
get。如您所见,它也可用于读取多个字符。
标签: c++ file-io iostream fstream