Почему при чтении строки ^ я получаю бессмысленный вывод вместе с действительным выводом? - PullRequest
0 голосов
/ 28 апреля 2011

Я пытаюсь записать несколько целых чисел в файл (в виде строки). Каждый раз, когда я пытаюсь выполнить этот фрагмент кода, я получаю целые числа в текстовом файле, как и планировалось, но перед целыми числами я получаю некоторые тарабарщина. Я немного поэкспериментировал и обнаружил, что если я ничего не добавлю в System :: String ^ b, это даст тот же самый бессмысленный вывод в файл или в окно сообщения, но я не мог понять, почему он это сделает, если я соединял эти целые числа с ним (как строки). Что здесь может пойти не так?

using namespace msclr::interop;
using namespace System;
using namespace System::IO;
using namespace System::Text;

...

System::IO::StreamWriter ^ x;
char buffer[21], buffer2[3];
int a;
for(a = 0; a < 10; a++){
    itoa(weight[a], buffer, 10);
    strcat(buffer, buffer2);
}
System::String ^ b = marshal_as<String^>(buffer);
x->WriteLine(b);

Ответы [ 2 ]

0 голосов
/ 28 апреля 2011

Опечатка в вопросе или ошибка в коде: передайте buffer2 в itoa вместо buffer.

Также инициализируйте buffer в "";

0 голосов
/ 28 апреля 2011

В каком формате находится файл?Возможно, вы читаете файл UTF-8 с меткой порядка байтов, который автоматически применяется программой для редактирования текста.

http://en.wikipedia.org/wiki/Byte_order_mark

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...