繁体   English   中英

C ++中的char数组

[英]char array in C++

在C ++中,我可以从包含整数的文件中读取并将其存储在char array []中吗?

是的,可以将文件中的数字存储在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&)的简单结构。 函数调用运算符采用一个数字,并期望返回该数字的操作,但是您希望更改该数字。

是。 只要您的整数足够小,可以表示为一个字节。 否则,它们的高位字节可能会丢失。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM