我正在做一个项目,我完全被卡住了。我基本上需要从格式如下的文件中读取文本数据:
每行 4 个数字,用逗号分隔(没有多少行的硬性规定,这个程序应该能够处理任意数量的行)
2, 32, 4, 7
4, 8, 3, 8
33, 11, 56, 65
基本上我只需要这个文本文档中的 0 元素和第 3 个(最后一个)元素,我需要将它们转换为整数并将它们放入自己的数组中:
所以对于 0 元素我会有一个数组(如果使用上面的文本示例):
zeroArray[] = 2, 4, 33
thirdArray[] = 7, 8, 65
所以,如果我zeroArray[1]说它会4,如果我thirdArray[0]说它会说7(*这是使用上面的示例数据,它需要能够使用任何数字)
我需要将这些数据转换为int它们自己的数组,以便以后可以对每个元素进行计算。我需要能够调用将执行这些计算的方法(我将编写)。
这是我遇到的问题。
我无法
intArray退出 while 循环,因为它是在 while 循环中声明的,这就是它的范围。但是,如果我尝试声明intArray退出 while 循环,它会给我错误“使用未分配的局部变量”intArray。当我在 while 循环中声明它并尝试在intArraywhile 循环之外使用时,它给了我错误the name intArray does not exist in the current context。所以我的主要问题是我需要能够访问intArray,以便我可以将它用作我的方法的参数来对其执行计算。我的第二个问题
intArray基本上是保存所有 4 行数据。如果我打印intArray[0],它会打印出所有列出的第一个数字,(使用上面的示例文本)它会打印:2 4 33
如果我打印 intArray[3],它会打印出文本数据中的所有第 4 个整数,如下所示:
7
8
65
我假设我需要做的是再制作两个数组,一个保存文本的第一个元素,另一个保存文本的第四个元素,因为这些需要以不同的方式处理。
我试图制作数组来存储这些数据,但无论我尝试什么,它都不起作用。而不是zeroArray[0] = 2,当我打印它时,它给了我整个列表:
2
4
33
如果我再打印zeroArray[1],期待4它再次打印出整个列表
2
4
33
不幸的是,我只能使用循环和一维数组。我不能使用列表、OOP 或二维数组。因此,如果我可以使用列表/二维数组,编码效率就不会那么高。
我目前将值存储到 int 数组intArray中,因为我不确定如何创建一个能够将不同值存储到两个不同数组中的 for 循环。我实在想不出办法。我尝试过的任何方法都失败了。
我可以使用两个数组而不是列表吗?intArray确实保存了转换后的整数值(4个不同的部分,我只需要其中的2个进行计算)。无论如何要创建两个包含intArray[0]和intArray[3]值的数组,以便我可以继续对它们进行计算?另外我怎样才能做到这一点,以便我可以在循环外使用这两个数组?如果我在循环外创建一个数组,它不会让我在循环内使用它,如果我在循环内创建一个数组,它不会让我在循环外使用它。
任何帮助将不胜感激
附加的代码是当前正在运行的代码。由于我无法弄清楚如何正确存储这两个数组,因此它们尚未包含在我的代码中
static void Main(string[] args)
{
//declarations
string inputString = "";
string[] results;
int holder = 0;
//import file for reading
FileStream inFile = new FileStream("input.txt", FileMode.Open, FileAccess.Read);
StreamReader myStream = new StreamReader(inFile);
//reads first line
inputString = myStream.ReadLine();
while (inputString != null)
{
//split the line
results = inputString.Split(',');
int[] intArray = new int[results.Length];
//do whatever processing you need to do to store it
for (int index = 0; index < results.Length; index++)
{
if (int.TryParse(results[index], out holder))
{
intArray[index] = holder;
}//end if
}//end for
//reads next line
inputString = myStream.ReadLine();
}//end while
//This is a test to see if the ints are correctly stored
Console.WriteLine(intArray[0]); //<--error here stating that 'The name intArray' does not exist in the current context'
}//end main