我一直在使用此链接作为示例,但一直遇到麻烦: 2d Array from text file c#
我有一个包含以下内容的文本文件:
1 1 0 0
1 1 1 0
0 0 0 1
0 1 0 0
我正在尝试使用该功能:
static void Training_Pattern_Coords()
{
String input = File.ReadAllText(@"C:\Left.txt");
int i = 0, j = 0;
int[,] result = new int[4, 4];
foreach (var row in input.Split('\n'))
{
j = 0;
foreach (var col in row.Trim().Split(' '))
{
result[i, j] = int.Parse(col.Trim());
j++;
}
i++;
}
Console.WriteLine(result[1, 3]);
Console.ReadLine();
}
但是我在以下行继续收到错误消息(输入字符串的格式不正确):
foreach (var row in input.Split('\n'))
我认为它与文本文件中的空格有关,但我并不完全确定。谢谢你的帮助!
答案 0 :(得分:2)
而不是File.ReadAllText
使用File.ReadLines
。通过这样做,您不需要使用Split('\n')
。
int[,] result = new int[4, 4];
var lines = File.ReadLines(@"C:\Left.txt")
.Select(x => x.Split()).ToList();
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
result[i, j] = int.Parse(lines[i][j]);
}
}
答案 1 :(得分:1)
答案 2 :(得分:0)
替换任何\r
(回车)
input = input.Replace('\r',' ');
答案 3 :(得分:0)
将\ r \ n替换为&#34; \ r \ n&#34;
试试这个:
foreach (var row in input.Split("\r\n"))