首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何按字符读取文件字符并通过array_name[index]在c++中访问文件

如何按字符读取文件字符并通过array_name[index]在c++中访问文件
EN

Stack Overflow用户
提问于 2013-12-24 03:52:40
回答 1查看 634关注 0票数 1

我想读取一个文件,这样我就可以使用任何类型的存储(如char arrayvector )逐字符访问它(我听说向量更安全、更快)。我的文件大小将在1 MB to 5 MB左右。我已经尝试过向量,但是它读取一个以\n结尾的单词(我的意思是一次读取文件,一次输出一行),而不是单个字符。在row x column wise的上下文中,我的文件大小会有所不同,因此我认为不能使用二维数组。

代码语言:javascript
运行
复制
#include <iostream>
#include <fstream>
#include <stdlib.h> 

using namespace std;

const int MAX_SIZE = 1000;

int main()
{
        ifstream hexa;
        hexa.open("test.txt");
        char* hexarray = new char[MAX_SIZE];        
            while (!hexa.eof())
            {   
                for (int i = 0; i <= MAX_SIZE; i++)
                {
                        hexa >> hexarray[i];
                        cout << hexarray[i]<<endl;
                }
            }
        delete[] hexarray;   
        hexa.close();
        return 0;
}

使用向量:

代码语言:javascript
运行
复制
vector<string> data;
ifstream ifs;
string s;
ifs.open("test.txt");
while(ifs>>s)
{
data.push_back(s);
}

有人能让我知道如何访问我的文件中的一个字符吗?

代码语言:javascript
运行
复制
File content:
-6353
-cf
-CF
0
1
-10
11
111111
-111111
CABDF6
-cabdf6
defc

所以我要找array_name[0] = -array_name[1] = 6,.array_name[n] = c

EN

Stack Overflow用户

回答已采纳

发布于 2013-12-24 04:00:38

最简单的方法:

代码语言:javascript
运行
复制
#include <iostream>
#include<fstream>
#include<vector>
#include<algorithm>
#include<iterator>
//...

std::vector<char> v;

std::ifstream hexa("test.txt");

std::copy( std::istream_iterator<char> (hexa),
           std::istream_iterator<char>(),
           std::back_inserter(v) );
//...
for(std::size_t i=0 ;i < v.size() ;++i)
      std::cout << v[i] << " ";
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20754620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档