C++ How to make cout not use scientific notation
To force cout
to print numbers exactly as they are and prevent it from using the scientific notation, we can use the std::fixed I/O manipulator as follows
#include <iostream> using namespace std; int main() { std::cout << "The number 0.0001 in fixed: " << std::fixed << 0.0001 << endl << "The number 0.0001 in default: " << std::defaultfloat << 0.0001 << endl; std::cout << "The number 1000000000.0 in fixed: " << std::fixed << 1000000000.0 << endl << "The number 1000000000.0 in default: " << std::defaultfloat << 1000000000.0 << endl; return 0; }
Output
The number 0.0001 in fixed: 0.000100 The number 0.0001 in default: 0.0001 The number 1000000000.0 in fixed: 1000000000.000000 The number 1000000000.0 in default: 1e+09
Replace a character in all filenames
The following command will search for files in the current directory (.
) that have in their name the colon character :
.
The files that match will then be renamed and all instances of the colon character :
in the names will be replaced by the full stop character .
.
find . -name "*:*" -execdir sh -c 'mv "$1" "${1//:/.}"' _ {} \;
-execdir command {} +
is like-exec
, but the specified command is run from the subdirectory containing the matched file, which is not normally the directory in which you started find.
Example: if you have a file named 2017-03-15 14:34:44.116002523.png
then it will be renamed to 2017-03-15 14.34.44.116002523.png
.
C++: Simplified version of ‘Friends with benefits’ demonstrating friend classes
A friend class in C++ can access the private and protected members of the class in which it is declared as a friend.
Friendship may allow a class to be better encapsulated by granting per-class access to parts of its API that would otherwise have to be public.[2] This increased encapsulation comes at the cost of tighter coupling due to interdependency between the classes.
Properties
- Friendships are not symmetric – if class A is a friend of class B, class B is not automatically a friend of class A.
- Friendships are not transitive – if class A is a friend of class B, and class B is a friend of class C, class A is not automatically a friend of class C.
- Friendships are not inherited – if class Base is a friend of class X, subclass Derived is not automatically a friend of class X; and if class X is a friend of class Base, class X is not automatically a friend of subclass Derived.
From Wikipedia: https://en.wikipedia.org/wiki/Friend_class
In the following example we assign both the Man to be a friend of the Woman and the Woman to be a friend of the Man in order to allow both parties to access the private members of the other.
#include <iostream> using namespace std; class Man; class Woman { friend class Man; public: void touch(Man man); private: void * body; }; class Man { friend class Woman; public: void touch(Woman woman); private: void * body; }; void Woman::touch(Man man) { void * other = man.body; } void Man::touch(Woman woman) { void * other = woman.body; } int main() { Man man; Woman woman; man.touch(woman); woman.touch(man); return 0; }