Including source code within the wiki: Difference between revisions
Jump to navigation
Jump to search
(Marked this version for translation) |
No edit summary |
||
Line 17: | Line 17: | ||
== Example == <!--T:5--> | == Example == <!--T:5--> | ||
Here is an example of a C++ code snippet created with the <nowiki><syntaxhighlight lang="cpp" line> ... </syntaxhighlight></nowiki> tag. | Here is an example of a C++ code snippet created with the <nowiki><syntaxhighlight lang="cpp" line> ... </syntaxhighlight></nowiki> tag. | ||
</translate> | |||
<syntaxhighlight lang="cpp" line> | <syntaxhighlight lang="cpp" line> | ||
#include <iostream> | #include <iostream> | ||
Line 26: | Line 26: | ||
using namespace std; | using namespace std; | ||
void flushIfBig(ofstream & out, ostringstream & oss, int size, bool force=false) { | void flushIfBig(ofstream & out, ostringstream & oss, int size, bool force=false) { | ||
if (oss.tellp() >= size) { | if (oss.tellp() >= size) { | ||
Line 36: | Line 35: | ||
int buff_size = 50*1024*1024; | int buff_size = 50*1024*1024; | ||
ofstream out ("file.dat"); | ofstream out ("file.dat"); | ||
ostringstream oss (ostringstream::app); | ostringstream oss (ostringstream::app); | ||
Line 49: | Line 47: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Latest revision as of 12:29, 28 April 2016
To include source code within the wiki, we are using the extension SyntaxHighlight_GeSHi. You can easily include a code snippet using the tag <syntaxhighlight> </syntaxhighlight>.
Options of the <syntaxhighlight> tag
For a complete list of options, please refer to this page.
lang option
The lang option defines the language used for syntax highlighting. The default language, if this option is omitted, is C++. The complete list of supported languages is available here.
line option
The line option displays line numbers.
Example
Here is an example of a C++ code snippet created with the <syntaxhighlight lang="cpp" line> ... </syntaxhighlight> tag.
#include <iostream>
#include <fstream>
#include <unistd.h>
#include <sstream>
using namespace std;
void flushIfBig(ofstream & out, ostringstream & oss, int size, bool force=false) {
if (oss.tellp() >= size) {
out << oss.str();
oss.str(""); //reset buffer
}
}
int main() {
int buff_size = 50*1024*1024;
ofstream out ("file.dat");
ostringstream oss (ostringstream::app);
oss.precision(5);
for (int i=0; i<100*buff_size; i++)
{
oss << i << endl;
flushIfBig(out,oss,buff_size);
}
flushIfBig(out,oss,buff_size,true);
out.close();
}