Po prostu uczę się D. Wygląda jak świetny język, ale nie mogę znaleźć żadnych informacji o funkcjach I/O pliku. Być może jestem przygnębiony (jestem w tym dobry!), Więc czy ktoś mógłby wskazać mi właściwy kierunek, proszę? DziękiPlik D funkcje wejścia/wyjścia
Odpowiedz
Co z modułem ?
Zasadniczo używasz the File
structure z std.stdio
.
import std.stdio;
void writeTest() {
auto f = File("1.txt", "w"); // create a file for writing,
scope(exit) f.close(); // and close the file when we're done.
// (optional)
f.writeln("foo"); // write 2 lines of text to it.
f.writeln("bar");
}
void readTest() {
auto f = File("1.txt"); // open file for reading,
scope(exit) f.close(); // and close the file when we're done.
// (optional)
foreach (str; f.byLine) // read every line in the file,
writeln(":: ", str); // and print it out.
}
void main() {
writeTest();
readTest();
}
Do rzeczy związane konkretnie do plików (atrybuty pliku, odczyt/zapis pliku w jednym zamachem), spojrzeć w std.file
. Dla rzeczy, które generalizują standardowe strumienie (stdin, stdout, stderr), spójrz na std.stdio
. Można użyć std.stdio.File
zarówno dla plików na dysku fizycznym, jak i dla strumieni standardowych. Nie używaj std.stream
, ponieważ jest to zaplanowane na wycofanie i nie działa z zakresami (odpowiednik D dla iteratorów).
Osobiście uważam, że pliki we/wy typu C są korzystne. Uważam, że jest to jedno z najbardziej przejrzystych w użyciu I/O, szczególnie jeśli pracujesz z plikami binarnymi. Nawet w C++ nie używam streamów, poza dodatkowym bezpieczeństwem jest po prostu niezgrabny (tak jak wolę printf nad strumieniami, świetnie jak D ma bezpieczny printf!).
@Kenya: "Uczenie się" oznacza dla mnie wersję "zalecaną dla nowych projektów" dla mnie, tzn. 2. – Joey