
У меня возникла странная проблема с написанием кода C++ в Xcode на MacBook. Я знаю, что код не является неисправным, поскольку пользователи Windows запускали его без каких-либо проблем, но каким-то образом вывод, который я получаю, в большинстве случаев не соответствует вводу. Я пытался переустановить Xcode, но безуспешно. Вот код, который я запускаю:
#include <string>
#include <iostream>
int main() {
std::string test = "";
while (std::cin >> test) {
std::cout << test << "\n";
}
return 0;
}
Я использую консоль из Xcode для предоставления пользователю ввода данных. Вот несколько примеров вывода, который я получаю:
Ввод: 1+(2+2)
Вывод: 1+()2+2
Ввод: 2*(-(8/2))
Вывод: 2*()()-8/2
Комментарий: В полях отображаются какие-то символы типа вопросительного знака, но, похоже, они не будут отображаться при вставке сюда.
Любая помощь будет высоко оценена.
решение1
Ваш комментарий относительно клавиш курсора прояснил проблему.
Обычно библиотеки stdio среды выполнения C/C++ полагаются на реализацию терминала системы для работы со специальными клавишами, такими как курсоры, поэтому программа будет получать так называемый «приготовленный» ввод терминала, где отфильтровываются все странности.
К сожалению, окно консоли внутри XCode не является полноценным терминалом, и некоторые вещи проходят через него.
Это что-то специфичное для XCode и его окна консоли. Этого не должно происходить, когда скомпилированная программа запускается из обычного окна терминала. Нажатие курсоров там приведет к появлению на экране странных символов, но они не появятся в std::cin.