【发布时间】:2022-01-19 06:27:49
【问题描述】:
我有一个从文件中读取数据的数组,数据是二进制数字,例如 010011001001 和许多其他数字,所以数据是我读入二维数组的字符串,但我坚持比较数组的每个值0. 任何帮助将不胜感激。
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
string myArr[5000][12];
int i = 0, zeroCount = 0, oneCount = 0;
ifstream inFile;
inFile.open("Day3.txt");
while(!inFile.eof())
{
for(int i = 0; i < 5000; i++)
{
for(int j = 0; j < 12; j++)
{
inFile >> myArr[i][j];
j++;
}
i++;
}
}
for(int j = 0; j < 12; j++)
{
for(int i = 0; i < 5000; i++)
{
if(myArr[i][j].compare("0") == 0)
{
zeroCount++;
}
else
{
oneCount++;
}
i++;
}
if(zeroCount > oneCount)
{
cout << "Gamma is zero for column " << i << endl;
}
else
{
cout << "Gamma is One for column " << i << endl;
}
j++;
}
}
来自文本文件的一些输入: 010110011101 101100111000 100100000011 111000010001 001100010011 010000111100
【问题讨论】:
-
打开您的调试器并检查 myArr 的实际内容,如果您将文件作为二进制文件打开,那么我希望值 0 应该是 0 而不是 '0'(除非文件被写为文本文件然后它是'0')。
-
包含所有二进制数字的文件保存为 .txt 文件,这会影响二进制数字的存储方式吗?还是我应该看看我的调试器?
-
学习如何使用调试器无论如何都是一项很好的学习技能:) 一步一步地验证你的假设总是有帮助的。文件的内容取决于它的编写方式。并且解释可能取决于您打开文件的方式,文本可以有额外的解释(例如 UTF-8 编码)
-
您显示的代码 sn-p 完全可以。错误在其他地方。您需要显示更多代码并且需要显示输入。然后我们可以给你一个更有帮助的答案。
-
@ArminMontigny 在像你这样的适当评论中,我建议使用方便的快捷方式minimal reproducible example(
[mre])。
标签: c++ arrays multidimensional-array