C++STLとファイル処理操作まとめ

1931 ワード

STL標準ライブラリ、英語Standard Template Library.広義にはalgorithm(アルゴリズム)、container(コンテナ)、iterator(反復器)の3種類に分けられる.
ファイルを開く方法は次のとおりです.
FILE *fp = fopen(filename,"w");
if(!fp)
    cout<

ファイルを読み込む操作は次のとおりです.
string s;
ifstream file(filename);//#include
	if(file.is_open())
    {
	    while(getline(file,s))
	    {
		    vector1.push_back(s);
	    }
    }

ここではifstreamを使用しており、ファイルの入力ストリームであり、多くのファイルモジュールが含まれており、便利です.getlineは、スペースを含むファイル全体の文字列を取得できますが、cinはスペースを取得できません.
fp = fopen(filename, "r");
	if(!fp)
	{
		cout<='A')
				ch += 32; 
			s[i]=ch;
			i++;
		}
		else if(s[0]!='\0')
		{
			words.push_back(s);
			while(i){
				s[i--] = '\0';
			}
			s[0] = '\0';
		}
	}
	fclose(fp);

このコードは、テキストを読み込み、句読点で異なる単語を抽出し、vectorに格納します.
ファイルへの書き込みには、次の操作があります.
while(gets(a)&&strcmp(a,"")!=0)//a    
	{
		fprintf(fp,"%s",a);
		fputc('
',fp); } fclose(fp);

ここでは入力した文字列をファイルに書き込み、異なる文字列をリターンで区切り、入力が空の場合whileループから飛び出します.
    ofstream fout;
	fout.open(filename,ios_base::out);
	if(fout.is_open())
	{
		for(vector::iterator i=vector1.begin(); i!=vector1.end(); ++i)
		{
			fout<

ここではofstreamを使用し、ファイル用の出力ストリームです.このコードはvecoter 1の文字列をファイルに順次書き込み、各文字列は1行です.
sort(vector1.begin(),vector1.end());

sortは自動ソート可能な関数で、とても使いやすいです.
vector > words(2);
lie = words[0].size();

このようにして2次元のvectorを確立することができ、コードの中のパラメータ2はこの2次元のvectorが2行あることを表す.size()関数は、この行にどれだけの要素があるかを知ることができます.
さらに2つの一般的な関数を追加します.
c_str()とatoi,c_strはstringタイプをchar*タイプに変換することができ、変換後、文字列に対してstrcmp、strcpyなどの関数操作を実行することができます.
atoiは文字列を整数に変換することができ、数字を文字列タイプに格納するのに適しており、itoa関数は正反対で、整数値を文字列に変換することができ、両者を組み合わせて使用すると、格納中にプロセスを簡略化することができます.