我有一个包含一些十六进制数字的 .txt
,我用 ifstream
将它们放入一个数组中。但是,它打印不正确,我的意思是,数字不符。这是我的代码:
void arrayNumbers(unsigned int longSize, unsigned int array[]) {
file.open("hex.txt");
int i;
if(file){
longSize=4;
array[longSize];
for(int i=0;i<longSize;i++){
file >> hex >> array[i];
cout << array[i]<< endl;
}
cout << "RIGHT" << endl;
}
else
cout << "WRONG" << endl;
file.close();
}
在 main()
中,我有:
void main() {
unsigned int array[longSize];
unsigned int longSize=4;
arrayNumbers(longSize,array);
cout << "OK" << endl;
}
这里发生了什么? T-T
最佳答案
longSize=4;
array[longSize];
这一点是完全错误的。你想在这里做但你不能做的事情:
- 在运行时增加数组的大小(大概是你用无意义的
array[longSize]
的意图) - 从运行时值 (
longSize
) 中选择数组的大小
考虑一个 std::vector
相反。
此外,您的 main
返回 void
而不是 int
(格式错误)和 main
中的数组具有另一个运行时变量的大小,该变量在数组之后声明!
最后,我强烈建议使用传统的缩进和大括号格式样式,因为您的样式很奇怪并且使代码难以阅读。
关于c++ - 数组和十六进制值 C++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29172055/