c++中的字符数组

char array in C++

本文关键字:数组 字符 c++      更新时间:2023-10-16

在c++中,我可以从包含整数的文件中读取并将其存储在字符数组[]中吗?

是的,可以将文件中的数字存储在char数组中:

#include <fstream>
#include <iterator>
#include <algorithm>
int main(int argc, char* argv[])
{
    std::ifstream in("input.txt");
    char arr[100];
    char* end = std::copy(std::istream_iterator<int>(in),
                          std::istream_iterator<int>(),
                          arr);
    return 0;
}

这里有两个问题。首先,在编译时必须知道数组的大小。第二,每个输入数字都必须符合char。注意,这是格式化的输入,因此有效范围不是0-255,甚至不是0-127。它是一个有效的字符,所以'0','2','a', 'C'等等都是每个字符的有效输入。

也许你想要的是读你的文件到std::vector<std::string> ?

#include <fstream>
#include <iterator>
#include <algorithm>
#include <vector>
#include <string>
int main(int argc, char* argv[])
{
    std::ifstream in("input.txt");
    std::vector<std::string> vec;
    std::copy(std::istream_iterator<int>(in),
              std::istream_iterator<int>(),
              std::back_inserter(vec));
    std::transfrom(vec.begin(), vec.end(),
                   vec.begin(),
                   my_transform());
    return 0;
}

这里我们将数字读入 std::vector<std::string> 。然后,通过my_transform函子操作数字的每个字符串表示形式。将函子定义为定义std::string operator()(const std::string&)的简单结构体。函数调用操作符接受一个数字,并期望返回对该数字的操作,无论您希望如何更改该数字。

是。只要你的整数足够小,可以用字节表示。