读入字符并创建数组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 ++的主要内容,如果未能解决你的问题,请参考以下文章

在c中分配空间并连接到无符号字符数组

C -(malloc、calloc 或静态)从函数返回的 2d 字符数组

C++ atoi 获取在程序同一部分创建的其他字符的值

C ++根据用户输入字符串长度创建二维数组

C / C ++将字符串放入二维数组?

How&Why?C++详解创建数组并初始化