我想讓我的arduino告訴我什麼時候運行它是E.g. 「這是這個循環第22次運行。」我應該使用什麼命令? 我目前使用此代碼:如何讓我的arduino打印「循環正在運行.......時間」?
Serial.print("This loop has run ");
Serial.print(loopsRun);
Serial.println(" times.");
loopsRun++;
是的,我已經聲明的所有變量,我只是想知道如果有任何檢查INT的最後一位數字的方式。
我想讓我的arduino告訴我什麼時候運行它是E.g. 「這是這個循環第22次運行。」我應該使用什麼命令? 我目前使用此代碼:如何讓我的arduino打印「循環正在運行.......時間」?
Serial.print("This loop has run ");
Serial.print(loopsRun);
Serial.println(" times.");
loopsRun++;
是的,我已經聲明的所有變量,我只是想知道如果有任何檢查INT的最後一位數字的方式。
22%10 = 2你想說22'nd」 1022%10 = 2你想說1022 'ND'
27%10 = 7你想說7 '日' 457 %10 = 7你會說457'th'
我的模式是否正確?如果是這樣,那麼你需要一個switch語句和運算符%
unsigned int remainder = loopsRun % 10;
switch (remainder)
{
case 0: suffix = "th"; break;
case 1: suffix = "st"; break;
case 2: suffix = "nd"; break;
<etc>
}
原諒挑選:C/C++%運算符不是模運算符,而是截斷除法後的餘數。在C++ 11之前,負商數(如-5/2)的商數舍入是_implementation defined_可以返回-2或-3,因此其餘的可以是-1或1. 現在標準聲明「The商被截斷爲零「,因此-5%2 == -1,這不同於模數的數學定義。請參閱http://en.cppreference.com/w/cpp/language/operator_arithmetic。 loopsRun變量不能爲負值,它應該是無符號的。 –
請提供[最小,完整,可驗證的示例](https://stackoverflow.com/help/mcve) – FortyTwo
您是否正在尋找剩餘除以10?看看%運算符。 無論如何,後綴st,nt,...不適用於消息。它應該是「循環爲......時間運行」。 –
@MichelBillaud我同意,我會在代碼審查工作中勸阻這類錯誤信息,但我認爲「nd」等後綴是OP問題的關鍵,因此我的答案如下。 – TomServo