Siddharth Rai Ответов: 1

Writeconsole в C#


Привет,
я переношу метод c++ на c#,я какую-то направляющую линию для него c++ использую WriteConsole
для печати конкретного текста "#xxxxx".

какой shuold мне нужно использовать для WriteConsole из c++ в c# любой пример кода для использования. >

я не могу понять основную разницу между printf, WriteConsole и консолью.WriteLine?

Что я уже пробовал:

 static void Main(string[] args)
        {
            string str2 = "#T255001010";
        
            Console.WriteLine("Step 1");
            Console.Write(str2);
            Console.WriteLine();
//step 2
           Console.OutputEncoding = Encoding.Default;
            ASCIIEncoding ascii = new ASCIIEncoding();
            byte[] encodedBytes = ascii.GetBytes(str2);
            Console.OutputEncoding = Encoding.ASCII;
            foreach (byte b in encodedBytes)
            Console.Write(b);
            Console.WriteLine();


//step 3
 Console.OutputEncoding = Encoding.Default;
            ASCIIEncoding ascii1 = new ASCIIEncoding();
            Console.Write(str2);

Richard MacCutchan

В чем именно заключается проблема? Возможно, если вы покажете код C++, который пытаетесь преобразовать, это будет иметь больше смысла.

1 Ответов

Рейтинг:
0

OriginalGriff

printf использует строку форматирования для вывода непосредственно на консоль: все, что в строке предваряется"%", указывает на "заполнитель", который будет заменен значением из списка переменных, следующего за строкой форматирования:

printf("The value is %d!", i);
Выведет "значение равно 666!" или аналогичное в зависимости от значения в i когда оператор выполняется.
Приставка.Пиши и утешай.WriteLine работает почти так же при нормальных обстоятельствах: вы предоставляете строку формата и список параметров, и они заменяются:
Console.WriteLine("The value is {0}!", i);
Будет печататься так же, как в Примере printf (есть и другие способы печати параметров с помощью Write и WriteLine, но я их здесь проигнорирую).
Если только нет только одного параметра, и в этом случае он печатается именно так, как есть:
Console.WriteLine("The value is {0}!);
Выведет " значение равно {0}!"
Однако когда вы указываете непечатаемое значение в качестве параметра для записи или WriteLine, все обстоит иначе. Один int напечатает строковое представление числа: "666", как и двойное:" 666.66", и Байт также не печатается, поэтому вы получаете числовое значение или байт: "# "будет печататься как" 35", потому что это ASCII-представление символа"#"," T "как" 84", " 2 " как "50", " 5 " как " 53 " и так далее.
Видеть здесь: таблица ASCII[^] и ценности должны быть более ясными.