Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Concatenating strings #1

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,10 @@ void loop(){
// and send it to the PC.
for(int i = 1; i < 6; ++i){
int pos = GetPosition(i);
String report;
report = i + ": " + pos;
String servo=String(i);
String text=String(": ");
String posit=String(pos);
String report = String(servo+text+posit);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't like the style here. There is really no reason to make three String objects and concatenate them in a String constructor.
If concatenation of integers in strings does not work, why not just change line 38 to:
report = String(i) + String(": ") + String(pos)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The syntax is obviously amateur. My point was that it couldn't concatenate the int types with the string ": ". I also found this site. If you scroll a bit down it actually explains the same scenario of concatenation. It says "This won't compile because the compiler doesn't handle the operator precedence correctly." I use the 1.0.6 version for the Crustcrawler.

Anyway, I just changed the code on my computer. If you say it works for you than something must be wrong on my side, but I wrote the code line by line and the only time it couldn't compile was when I tried to create the report string.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One more thing, I might have mislead you. The IDE can compile, but if I upload the code to the robot and open the serial monitor with the original code I only get a bunch of ones. Nothing else. However changing the code seemed to work.

Serial.println(report);
}

Expand Down