C ++中的char数组

在C ++中,我可以从包含整数的文件中读取并将其存储在char数组[]中吗?     
已邀请:
是的,可以将文件中的数字存储在
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&)
的简单结构。函数调用操作符接受一个数字,并且希望返回数字的操作,但是您希望更改数字。     
是。只要你的整数足够小就可以表示为一个字节。如果不是,它们可能会丢失更高阶的字节。     

要回复问题请先登录注册