我有以下程序,只需将.txt文件中的两个矩阵读入二维数组。我从VS2012的开发人员命令提示符运行它,如第一张图片
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace Assignment3
{
class Program
{
static void Main(string[] args)
{
int[,] matrix1 = new int[3, 3]; int[,] matrix2 = new int[3, 3]; int[,] matrix3 = new int[3, 3];
int i = 0, j = 0, k = 0;
#region Reading Matrices From Files
string text = System.IO.File.ReadAllText(@"Matrix1.txt");
foreach (var row in text.Split('\n'))
{
j = 0;
foreach (var col in row.Trim().Split(' '))
{
matrix1[i, j] = int.Parse(col.Trim());
j++;
}
i++;
}
Console.WriteLine("Execution Starts Here");
Console.WriteLine("\nMatrix1 Has been read from file Matrix1.txt...\n");
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
Console.Write(String.Format("{0}\t", matrix1[i,j]));
}
Console.WriteLine();
}
string text2 = System.IO.File.ReadAllText(@"Matrix2.txt");
i = 0;
foreach (var row in text2.Split('\n'))
{
j = 0;
foreach (var col in row.Trim().Split(' '))
{
matrix2[i, j] = int.Parse(col.Trim());
j++;
}
i++;
}
Console.WriteLine("\n\nMatrix2 Has been read from file Matrix2.txt...\n");
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
Console.Write(String.Format("{0}\t", matrix2[i, j]));
}
Console.WriteLine();
}
#endregion
&#13;
我认为这与某些事情有关,例如命令参数的数量。有人帮我请。
答案 0 :(得分:1)
string[] args
方法的Main
部分包含传递给应用程序的任何命令行参数。您可以通过args[0]
和args[1]
访问文件名。
编辑:只需添加,您可以通过查看项目的属性来指定在从Visual Studio调试/运行应用程序时使用的命令行参数(在解决方案资源管理器中选择项目并按Alt+Enter
}并将其设置在Command Line Arguments
标签下的Debug
字段中。
编辑:在评论中回答您的问题:您的位置
string text = System.IO.File.ReadAllText(@"Matrix1.txt");
您已将文件名硬编码为Matrix1.text。如果希望能够在运行时指定文件名,则可以选择将它们作为命令行参数传递。可以使用main方法中的args[]
参数访问这些命令行参数。 args [0]包含第一个参数值,args [1]包含第二个参数值,依此类推。所以上面的行可以替换为
string text = System.IO.File.ReadAllText(args[0]);
值得注意的是,人们通常在Main
方法的顶部有一个验证部分,它确认用户已经传递了预期数量的参数,并且它们是预期的类型。如果有任何例外,通常会显示使用消息,然后退出应用程序。