我正在做一个项目,我完全被卡住了。我基本上需要从格式如下的文件中读取文本数据:
每行 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 循环中声明它并尝试在intArray
while 循环之外使用时,它给了我错误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