Запись непосредственно в строку VS.запись в него с помощью «getline» - PullRequest
0 голосов
/ 20 декабря 2018

В настоящее время я пишу код для проекта, который содержит открытие порта.Я записываю имя порта в строковую переменную и использую эту строку в качестве параметра функции.

Я хочу сравнить следующие два подхода:

  1. Я пишу в строку непосредственно при инициализации строки.Итак, что я делаю:

    std::string comPort ("\\\\.\\COM11");
    serialCommunication serialTest(comPort);
    serialTest.serialInit();
    

    Этот подход работает хорошо, и я не получаю ошибок.

  2. Я хочу, чтобы пользователь записал имя порта.

    Итак, что я сейчас делаю:

    std::string comPort;
    cout << "Port name: ";
    getline (cin, comPort);
    cout << comPort;
    
    serialCommunication serialTest(comPort);
    serialTest.serialInit();
    

В строке 4 я использую cout, чтобы показать содержимое строки.Getline работает как положено.Когда я набираю «\\. \ COM11» в консоли, он также обрабатывает это содержимое.Но: когда я вызываю функцию в конце кода, она не работает.

Я что-то упускаю, что делает getline, но что я не вижу?

1 Ответ

0 голосов
/ 20 декабря 2018

Хорошо, я нашел ошибку.

Считывание «\» из консоли фактически становится «\ \» в строковой переменной, потому что, я думаю, знак автоматически экранируется.Не думал об этом, извините за создание ненужной темы.

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