Mam w pliku dwie liczby oddzielone spacją. Jak w C# wczytywać je do dwóch zmiennych?
Znam tylko opcję wczytywania Console.ReadLine() oraz wywoływanie na tym Int.Parse(), ale tutaj się to nie udaje bo mam dwie liczby.
Plik:
12.5 178.123
Kodzik:
using System;
using System.Text;
using System.Linq;
using System.Collections.Generic;
using System.IO;
class Program
{
public static void Main(string[] args)
{
var line = File.ReadAllText("test.txt");
var numbers = line.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
foreach (var n in numbers) Console.WriteLine(n);
}
}
A parsowanie do docelowego typu to już wedle uznania.
@grzesiek51114 dzięki, jednak jest problem przy dzieleniu tych liczb, podejrzałem i w pierwszym jest np. "1" a w drugim jest już "1\r\n2" i nie mogę tego dobrze wyświetlać i parsować. Jak to rozegrać?
Mam w pliku dwie liczby oddzielone spacją.
Teraz okazuje się, że w pliku są znaki nowej linii. Dlaczego kłamałeś?
@somekind Faktycznie źle to sformułowałem. Jest niewiadoma ilość linii gdzie w każdej są dwie liczby :) Jakaś porada?
@Bartolinho10 naprawdę jest to tak strasznie wielki problem do rozwiązania? Już przecież samo IDE podpowie kiedy wpisujesz ReadAll...
, że istnieje metoda o nazwie ReadAllLines
, która zwróci tablicę stringów z linijkami z pliku. Starczy przecież dobrze popatrzeć co podpowiada IDE i już miałbyś dawno rozwiązany problem.
using System;
using System.Text;
using System.Linq;
using System.Collections.Generic;
using System.IO;
class Program
{
public static void Main(string[] args)
{
var lines = File.ReadAllLines("test.txt");
foreach (var l in lines)
{
var numbers = l.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
Console.WriteLine("{0} {1}", numbers[0], numbers[1]);
}
}
}