c++中的字符数组
char array in C++
在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&)
的简单结构体。函数调用操作符接受一个数字,并期望返回对该数字的操作,无论您希望如何更改该数字。
是。只要你的整数足够小,可以用字节表示。
相关文章:
- 指向指向字符数组的指针数组的指针
- 比较字符数组
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 使用无符号字符数组有效存储内存
- 按字符值访问int数组
- 错误:字符数组的初始值设定项太多
- 对字符数组中的元素执行逐位操作
- C++,在int数组中输入字符串或字符会输出0,而不是ascii或error
- C++ 无法在字符数组中使用 for 循环打印字母模式
- 如何在 C++ 中从文件中读取字符数组(带有一些空格)
- 移动二维数组中的字符
- C++ 传递二维字符数组
- 无法在 C++ 中输入字符数组
- C++ 带结构的数组字符
- 数组字符包含量超出预期
- 读取文件并添加到数组字符
- 如何在Qt中更改或替换数组字符
- 为什么编译器不在参数中传递数组字符 *arr[] 的大小?
- 井字棋数组字符错误
- 分割数组字符