Преобразование кода c++ в arduino со строковыми и потоковыми заголовочными файлами и функциями

Я разрабатываю проект на своей плате ардуино, для своего проецирования идеи я написал код в C++. Но некоторые библиотечные файлы и функции не были найдены в IDE arduino, которые, насколько мне известно, находятся в C++.

Я прилагаю код ниже. Я хочу преобразовать весь код в arduino, в котором только convertToEnglish останется как функция в arduino. Я пытался заменить заголовочные файлы и другие функции строковой библиотекой и другим заголовочным файлом Stream.h, но почти все закончилось напрасно. Следовательно, чтобы преодолеть это, пожалуйста, процитируйте мне решение. Я попытался использовать Standard C++, как указано в кавычках, но все же функция getline сообщает об ошибке, указывающей, что cin не был объявлен в сфера.

#include <StandardCplusplus.h> #include <system_configuration.h> #include <unwind-cxx.h> #include <utility.h> #include <iostream> #include <string> #include <sstream> using namespace std; string convertToEnglish(string morse, string const morseCode[]); int main() { string input = «»; cout << «Please enter a string in morse code: «; getline(cin, input); string const morseCode[] = {«.-«, «-…», «-.-.», «-..», «.», «..-.», «—.», «….», «..», «.—«, «-.-«, «.-..», «—«, «-.», «—«, «.—.», «—.-«, «.-.», «…», «-«, «..-«, «…-«, «.—«, «-..-«, «-.—«, «—..»}; cout << convertToEnglish(input, morseCode) << endl; return 0; } string convertToEnglish(string morse, string const morseCode[]) { string output = «»; string currentLetter = «»; istringstream ss(morse); size_t const characters = 26; while(ss >> currentLetter) { size_t index = 0; while(currentLetter != morseCode[index] && index < characters) { ++index; //increment here so we don’t have to decrement after the loop like if we put in the condition } output += ‘A’ + index; } return output; }

сообщение об ошибке: Arduino: 1.6.8 (Windows 8.1), плата: «Arduino/Genuino Uno»

E:brainarduinosketch_mar15aBlinkBlinkBlink.ino: В функции ‘int main()’:

Мигание: 19: ошибка: «cin» не был объявлен в этой области

getline(cin, input); ^

статус выхода 1 ‘cin’ не был объявлен в этой области

В этом отчете будет больше информации, если в меню «Файл» -> «Настройки» включена опция «Показать подробный вывод во время компиляции».

в чем именно проблема?:   —  person satabios    schedule 18.04.2016

Файлы заголовков string и sstream не могут быть найдены в arduino ide. Если нет, то другие заголовочные файлы используются для получения того же вывода.   —  person satabios    schedule 18.04.2016

Возможный дубликат векторов в Arduino   —  person satabios    schedule 18.04.2016

Вы должны поменять порядок тестов currentLetter: до index < characters и после currentLetter != morseCode[index]. В противном случае вы можете получить доступ к morseCode[26]   —  person satabios    schedule 19.04.2016

Источник: ledsshop.ru

Стиль жизни - Здоровье!