Я получил учебное пособие с упражнением, чтобы в основном скопировать текстовый файл с использованием метода read (). И там это не проблема, используя следующий код:
while (inputfile->Peek() != -1)
{
input= inputfile->Read();
outputfile->Write(input);
}
Но теперь я хотел показать содержимое txt-файла на консоли, используя:
Консоль :: Write (вход);
И все, что я получаю, это числа (вероятно, Unicode: (84104105115 ....)
Книга упражнений показывает в своем решении, что входная переменная должна быть "char" и что input = inputfile-> Read (); должен быть input = (char) inputfile-> Read (); вместо. Но, насколько я понимаю, это не имеет никакого значения, если «input» - это int или char, или если я использую преобразование через (char). Консоль всегда показывает цифры, а скопированный файл всегда корректен.
Я думаю, что -> Write () и -> Read () отлично работают с Unicode в качестве ввода, но Console :: Write () не работает.
Может кто-нибудь прояснить это и показать мне, вероятно, довольно простое решение для выражения файла на консоли после того, как он был прочитан с помощью Read ()? (с readline у меня нет проблем, я работаю над тем, чтобы понять это, но не всегда нахожу лучшее решение).
полный код:
#include "stdafx.h"
using namespace System;
using namespace System::IO;
int main(array<System::String ^> ^args)
{
int input;
StreamReader ^inputfile = gcnew StreamReader("text.txt");
StreamWriter ^outputfile = gcnew StreamWriter("textkopie.txt");
while (inputfile->Peek() != -1)
{
input= inputfile->Read();
Console::Write(input);
outputfile->Write(input);
}
inputfile->Close();
outputfile->Close();
Console::ReadLine();
return 0;
}