Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Special Interest Groups
  3. C++ Gurus
  4. qstring .arg like thing in pure c++
Qt 6.11 is out! See what's new in the release blog

qstring .arg like thing in pure c++

Scheduled Pinned Locked Moved Unsolved C++ Gurus
17 Posts 4 Posters 8.5k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • VRoninV Offline
    VRoninV Offline
    VRonin
    wrote on last edited by VRonin
    #4

    😓
    It's 1 line in code and 1 line in the project file. Let's no be this lazy, shall we?!

    "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
    ~Napoleon Bonaparte

    On a crusade to banish setIndexWidget() from the holy land of Qt

    1 Reply Last reply
    2
    • U Offline
      U Offline
      user4592357
      wrote on last edited by user4592357
      #5

      how is it 1 line? i added the format.hpp but it has dependencies so i need to add them too

      p.s. i can't be lazy cause i'm copying all the needed header files to my project dir :D

      p.s.2 or i'm doing something worng?

      VRoninV 1 Reply Last reply
      0
      • K Offline
        K Offline
        Konstantin Tokarev
        wrote on last edited by
        #6

        @user4592357 said in qstring .arg like thing in pure c++:

        as the title suggests, i need a way to format std::string like QString does with .arg(), but i only wanna use c++.

        i know that there's boost class to do that (namely, boost::format) but i don't to attach 3rd party since if i do, the project will become heavy (boost is like 1.2gb)

        Boost has a tool to extract only needed parts

        1 Reply Last reply
        2
        • U Offline
          U Offline
          user4592357
          wrote on last edited by
          #7

          thanks, but seems like all the folder got copied

          here's how i did it:

          bcp.exe --boost=..\..\ format C:\Documents\proj\dependencies\boost_1_65_1\boost
          
          1 Reply Last reply
          0
          • U user4592357

            how is it 1 line? i added the format.hpp but it has dependencies so i need to add them too

            p.s. i can't be lazy cause i'm copying all the needed header files to my project dir :D

            p.s.2 or i'm doing something worng?

            VRoninV Offline
            VRoninV Offline
            VRonin
            wrote on last edited by VRonin
            #8

            @user4592357 said in qstring .arg like thing in pure c++:

            or i'm doing something worng?

            Exactly, you are doing the difficult way. Do not copy every file in your folder.

            • just add 1 line in the project file (assuming you use qmake on windows): INCLUDEPATH += C:/Boost/boost_1_65_0
            • re-run qmake
            • add #include<boost/format.hpp> in your source file

            "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
            ~Napoleon Bonaparte

            On a crusade to banish setIndexWidget() from the holy land of Qt

            U 1 Reply Last reply
            2
            • VRoninV VRonin

              @user4592357 said in qstring .arg like thing in pure c++:

              or i'm doing something worng?

              Exactly, you are doing the difficult way. Do not copy every file in your folder.

              • just add 1 line in the project file (assuming you use qmake on windows): INCLUDEPATH += C:/Boost/boost_1_65_0
              • re-run qmake
              • add #include<boost/format.hpp> in your source file
              U Offline
              U Offline
              user4592357
              wrote on last edited by user4592357
              #9

              @VRonin

              the thing is that im not using qt. in that case i'd just use qstring and that's all.

              VRoninV 1 Reply Last reply
              0
              • U user4592357

                @VRonin

                the thing is that im not using qt. in that case i'd just use qstring and that's all.

                VRoninV Offline
                VRoninV Offline
                VRonin
                wrote on last edited by
                #10

                @user4592357 The above has nothing to do with Qt, just with the build system you use.

                Since you posted here I supposed you were using Qt Creator.
                If you use visual studio you should just add C:\Boost\boost_1_65_0 to the "Additional include directories" under Project Properies->C/C++->General

                "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
                ~Napoleon Bonaparte

                On a crusade to banish setIndexWidget() from the holy land of Qt

                U VRoninV 2 Replies Last reply
                2
                • VRoninV VRonin

                  @user4592357 The above has nothing to do with Qt, just with the build system you use.

                  Since you posted here I supposed you were using Qt Creator.
                  If you use visual studio you should just add C:\Boost\boost_1_65_0 to the "Additional include directories" under Project Properies->C/C++->General

                  U Offline
                  U Offline
                  user4592357
                  wrote on last edited by
                  #11

                  @VRonin

                  i've done that with the whole 1.2gb boost directly. that works

                  now i need to send the project to my teacher but i don't want to include 1.2gb of files.

                  and how can including just the header work if it includes other files? i still don't get it

                  1 Reply Last reply
                  0
                  • VRoninV Offline
                    VRoninV Offline
                    VRonin
                    wrote on last edited by
                    #12

                    What program are you using to write, compile and link your binaries?
                    What OS are you on?

                    "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
                    ~Napoleon Bonaparte

                    On a crusade to banish setIndexWidget() from the holy land of Qt

                    1 Reply Last reply
                    1
                    • U Offline
                      U Offline
                      user4592357
                      wrote on last edited by
                      #13

                      visual studio 2017 on windows 10

                      1 Reply Last reply
                      0
                      • VRoninV VRonin

                        @user4592357 The above has nothing to do with Qt, just with the build system you use.

                        Since you posted here I supposed you were using Qt Creator.
                        If you use visual studio you should just add C:\Boost\boost_1_65_0 to the "Additional include directories" under Project Properies->C/C++->General

                        VRoninV Offline
                        VRoninV Offline
                        VRonin
                        wrote on last edited by VRonin
                        #14

                        @VRonin said in qstring .arg like thing in pure c++:

                        if you use visual studio you should just add C:\Boost\boost_1_65_0 to the "Additional include directories" under Project Properies->C/C++->General

                        Did you try this before copying the 1.2 GB? of course C:\Boost\boost_1_65_0 is just an example and you should point to the folder where you have downloaded boost

                        "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
                        ~Napoleon Bonaparte

                        On a crusade to banish setIndexWidget() from the holy land of Qt

                        1 Reply Last reply
                        0
                        • sneubertS Offline
                          sneubertS Offline
                          sneubert
                          wrote on last edited by
                          #15

                          What about stringstream?
                          (http://en.cppreference.com/w/cpp/io/basic_ostringstream)

                          I always use something like this

                          #include <iostream>
                          #include <sstream>
                          #include <string>
                          
                          std::ostringstream mystring;
                          std::string someText = "something";
                          int number = 11;
                          mystring << "This is " << someText << " in pure c++ " << number;
                          std::cout << mystring.str();
                          
                          K 1 Reply Last reply
                          2
                          • sneubertS sneubert

                            What about stringstream?
                            (http://en.cppreference.com/w/cpp/io/basic_ostringstream)

                            I always use something like this

                            #include <iostream>
                            #include <sstream>
                            #include <string>
                            
                            std::ostringstream mystring;
                            std::string someText = "something";
                            int number = 11;
                            mystring << "This is " << someText << " in pure c++ " << number;
                            std::cout << mystring.str();
                            
                            K Offline
                            K Offline
                            Konstantin Tokarev
                            wrote on last edited by
                            #16

                            @sneubert But it works well only for simple formatting, when you need to print columns or specify precision of floating-point numbers, you have to face the nightmare of ios flags

                            sneubertS 1 Reply Last reply
                            1
                            • K Konstantin Tokarev

                              @sneubert But it works well only for simple formatting, when you need to print columns or specify precision of floating-point numbers, you have to face the nightmare of ios flags

                              sneubertS Offline
                              sneubertS Offline
                              sneubert
                              wrote on last edited by
                              #17

                              @Konstantin-Tokarev
                              yes u are right even though for my use cases the list of manipulators
                              (http://en.cppreference.com/w/cpp/io/manip) is sufficient and keep in
                              mind that only the brave ones are rewarded :-)

                              1 Reply Last reply
                              0

                              • Login

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Categories
                              • Recent
                              • Tags
                              • Popular
                              • Users
                              • Groups
                              • Search
                              • Get Qt Extensions
                              • Unsolved