读入字符并创建数组c ++
Posted
技术标签:
【中文标题】读入字符并创建数组c ++【英文标题】:Reading in characters and creating array c++ 【发布时间】:2013-03-21 00:50:07 【问题描述】:如何从文件中读取一行字符。首先,程序从文件中读取一个整数。该数字表示下一步要读取多少个字符。下一步读取字符并将它们存储在一个数组中。那么如何创建 'char' 变量,以便我可以正确读取 Michael 的字符以将它们显示在数组中。
file.txt:
8
Michael
我使用 inputFile >> 整数,从那里我需要使用该整数来制作这个数组 char mike[integer];,然后我可以将字符读入数组
【问题讨论】:
了解如何使用<fstream>
中的设施
这更像是一个 C 问题。在 C++ 中,我永远不会为此使用原始数组。有一些花哨的容器和类来保存字符串数组。
为什么不直接将Michael
放入文件并读取std::string
?还是您实际上只阅读部分字符串/行?
我需要从 michael 那里取出字母,这样我以后可以分开,所以我需要 char
【参考方案1】:
回答你的问题:
#include <fstream>
using namespace std;
int main()
ifstream f("file.txt");
int n;
f >> n;
char chs = new char[n];
for (int i = 0; i < n; ++i) f >> chs[i];
// do something about chs
delete [] chs;
但是,我会选择(如果您的 Michael
出现在自己的行上):
#include <fstream>
#include <string>
using namespace std;
int main()
ifstream f("file.txt");
int n;
f >> n;
string str;
getline(f, str);
【讨论】:
im 使用 inputFile >> 整数,从那里我需要使用该整数来制作这个数组 char mike[integer];,然后我可以将字符读入数组 需要检查“inputFile >> integer”是否失败。如果遇到 EOF 或未找到整数,该语句将失败。 @ThomasMatthews 好吧,我想我只需要提供一个框架来读取字符串。至于错误检查,我认为我们需要更多关于输入文件格式的假设,并且 OP 可以相应地做到这一点:)【参考方案2】:#include <fstream.h>
#include <string.h>
int main()
ifstream f("file.txt",ios::in);
int n;
f >> n;
char string[n];
f.getline(string,n);
cout<<string;
这会在file.txt
中输出以下字符串。
【讨论】:
以上是关于读入字符并创建数组c ++的主要内容,如果未能解决你的问题,请参考以下文章