|
The backslashes are there to tell the macro processor to include them all until it finds a line that just ends in a newline.
#define FOO(x) \ // means the definition continues onto the next line
x *= 25; \ printf("X = %d\n");
|
|
|
|
|
I would like to go over some old code and replace the use of CString (MFC / ATL) with a multiplatform, C++ 20 equivalent. Can I use std::format and if so, then how?
|
|
|
|
|
std::format is not directly compatible with sprintf formatting codes. From what I've seen there are different ways to go about this:
- do sprintf to a temporary buffer and assign buffer to a std::string
- switch to string streams (std::stringstream) and their "<<" operator
- switch to std::format and their "{}" style formatting.
None is automatic and about equally unpleasant.
Mircea
|
|
|
|
|
Message Closed
modified 15-May-23 19:06pm.
|
|
|
|
|
Yes, the option to remove blank lines doesn't usually exist.
|
|
|
|
|
|
I all I did was answer your question. What the did i do wrong?
Quote: I am asking - is this normal in any decent editor NOT to have an option to remove "white space" in between lines of code?
|
|
|
|
|
14968771 often answers like that. Similarly gives instructions in his questions as to how you must answer.
|
|
|
|
|
Wow.
The quality of the question directly dictates the quality of the answer.
|
|
|
|
|
IIRC a few years ago he actually complained about this in Bugs 'n' Sugs.
|
|
|
|
|
|
Yeah, "working as expected".
|
|
|
|
|
First:Member 14968771 wrote: I am asking - is this normal in any decent editor NOT to have an option to remove "white space" in between lines of code? being answered withYes, the option to remove blank lines doesn't usually exist. is a direct, clear answer to your question, and certainly doesn't justify your reaction:Answering questions is also a skill , especially without unasked / uncalled for preaching and other innuendos and insults. I have no idea why you show this kind of reaction to a simple (and correct) answer to exactly what your were asking for.
Then: To remove blank lines in Notepad++, I first delete all trailing spaces at end of lines (NP++ has a command for that). Then I replace two consecutive newlines with one newline. NP++ can handle both ISO standard, Mac and *nix newlines, and you have to specify the correct format for the search to match, and you have to select 'Search mode: Extended'.
I guess that any editor that can match on newlines of various kinds can be used in a similar way to remove blank lines.
|
|
|
|
|
My guess is that Member 14968771 does not realise that what's below the horizontal line is simply Dave's signature. He's reading it as a personalised response to his question, misconstruing it entirely and taking it as a personal dig.
|
|
|
|
|
He gives offence freely, and takes it at the drop of a hat.
|
|
|
|
|
Message Closed
modified 15-May-23 19:06pm.
|
|
|
|
|
I am assuming that your QP pointer is a reference to an object of QProcess Class | Qt Core 6.3.2[^]. As stated in the documentation the start method assumes the device mode as ReadWrite , which if it follows the normal rules, suggests you can write to and read from the started process. But writing will only work if the started process is waiting for input on its stdin stream. As far as I can see your started process is a simple shell pipeline to write some data to stdout and a couple of files. So it is not likely to be waiting for input from an external source.
|
|
|
|
|
Message Closed
modified 15-May-23 19:06pm.
|
|
|
|
|
Member 14968771 wrote: Not sure where to start. The logical place is a tutorial on QProcess. You can only communicate with an independent process in this way, when the input and output streams are connected. The default option to the start method sets QIODeviceBase::OpenMode mode = ReadWrite . Does that mean that you can write to the process or not? Only a QT expert can advise on the answer.
|
|
|
|
|
Message Closed
modified 15-May-23 19:06pm.
|
|
|
|
|
|
Message Closed
modified 15-May-23 19:06pm.
|
|
|
|
|
1. You can concatenate strings. Like this:
#define BT_DATABASE_TEST "../../BT_DATABASE/BluetoothDatabase.txt"
const char *command = "bluetoothctl show | tee " BT_DATABASE_TEXT " | tee /tmp/temp";
2. Maybe something like this:
std::string var = "blah_blah.txt";
std::string command = std::string("bluetoothctl show | tee ") + var + std::string("" | tee /tmp/temp");
QP->start("/bin/sh", QStringList() << "-c" << command.c_str());
Mircea
|
|
|
|
|
Member 14968771 wrote: 1. Why putting #define in char "string"... The preprocessor does not see #define directives inside string literals.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
I can`t think of a way to store in an array objects of different type but with same base class so I`m going to use a STL container instead:
class somebaseclass
{
}
class derivedclass: private somebaseclass
{
}
class anotherderivedclass: private somebaseclass
{
}
vector<somebaseclass *> * AllObjects;
derivedclass * Derived1 = new derivedclass[1];
anotherderivedclass * Derived2 = new anotherderivedclass[1];
AllObjects->push_back((somebaseclass)Derived1);
AllObjects->push_back((somebaseclass)Derived2);
Is this how it should be done?
modified 10-Aug-22 9:47am.
|
|
|
|