Я разрабатываю проект на своей плате ардуино, для своего проецирования идеи я написал код в 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
Источник: