How to log a message from a string variable in Unreal Engine?
Asked Answered
B

2

15

I am trying to log a message form a string variable , below is the code I used

std::string s = "ss";//std::to_string(FPaths::GetPath("../"));
 UE_LOG(LogTemp, Warning, *s);

but it's not working, Can someone tell me how to do this ? enter image description here

Brownson answered 21/7, 2016 at 9:26 Comment(0)
B
34

Finally I am answering my own question here.

It doesn't compile because I need to use the TEXT Macro before giving a string into UE_LOG.

FString s = "ss";
 UE_LOG(LogTemp, Warning, TEXT("%s"), *s);

 //or

 UE_LOG(LogTemp, Warning, TEXT("ss"));

 //this should work
 UE_LOG(LogTemp, Warning, TEXT("%s"), *FPaths::GetPath("../"));

should work with Unreal's version of Datatypes instead of using the std library

Brownson answered 21/7, 2016 at 10:41 Comment(3)
You can accept your own answer if it's correct :P And try to use Unreal's string, array, map...etc. instead of std ones since Unreal has its own magic...Exceptive
Only the std algorithms are compatible with Unreal's containers since they support begin() and end(), otherwise I think you should use Unreal's equivalents.Exceptive
UE_LOG(LogTemp, Warning, TEXT("%s"), *s); 🤦Stokeontrent
P
6

If you really have to than you can convert std::string to FString and than log that like this.

std::string someString = "Hello!";
FString layerName(someString .c_str());
UE_LOG(LogTemp, Warning, TEXT("%s"), *layerName);
Pm answered 12/11, 2019 at 15:8 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.