使用C++,我想生成一個文件,我必須將行號添加到每行的末尾。有些行在第13個字符後結束,其中一些在第32個字符後結束。但行號應該是最後的。一行有80個字符,行的最後一行應該在行的第80列。如何使用C++寫入文件的特定列?
有沒有辦法做到這一點?我用ofstream初始化我的文件,使用C++。
使用C++,我想生成一個文件,我必須將行號添加到每行的末尾。有些行在第13個字符後結束,其中一些在第32個字符後結束。但行號應該是最後的。一行有80個字符,行的最後一行應該在行的第80列。如何使用C++寫入文件的特定列?
有沒有辦法做到這一點?我用ofstream初始化我的文件,使用C++。
好了,這裏有一個方法使用一個字符串流去了解它:
#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個字符,放下你的行號,然後尋找的開始你可以輸出任何你想要的行。如果您不斷向流中寫入一長串數據,您當然會覆蓋您的線路號碼。
這正是我需要的!謝謝 –
墊每個輸出線:
#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;
}
有幾種方法可以做到這一點。這是功課嗎? – wallyk
不,我實際上正在編寫一個IGES轉換器,它需要每行末尾的行號以及特定列中的特定數據。我只是最小化了問題,所以大家都能理解。 –
你知道C++嗎?你必須特別使用C++嗎? –