C ++を使用して、各行の最後に行番号を追加する必要があるファイルを生成したいと思います。13行目以降に終了する行もあれば、32文字目以降に終了する行もあります。ただし、行番号は最後にする必要があります。行の長さは80文字で、行の最後の番号は行の80列目にある必要があります。
これを達成する方法はありますか?ofstreamを使用してファイルを初期化し、C++を使用します。
各出力行をパディングします。
#include <sstream>
#include <string>
#include <iostream>
void
pad (std::string &line, unsigned int no, unsigned int len = 80)
{
std::ostringstream n;
n << no;
line.resize (len - n.str().size (), ' ');
line += n.str();
}
int
main ()
{
std::string s ("some line");
pad (s, 42, 80);
std::cout << s << std::endl;
return 0;
}
さて、これは文字列ストリームを使用してそれを行う1つの方法です:
#include <iostream>
#include <iomanip>
#include <sstream>
using namespace std;
int main() {
int lineNum = 42;
stringstream ss;
ss << setw(80) << lineNum;
ss.seekp(0);
ss << "information for beginning of line";
cout << ss.str() << endl;
return 0;
}
基本的に、ストリームを右揃えに設定し、80 文字にパディングし、行番号を設定してから、必要なものを出力できる行の先頭を探します。ストリームに長い行のデータを書き続けると、もちろん行番号が上書きされます。