CPP_file_tokenize - RとLinuxと...

RとLinuxと...


CPP_file_tokenize

Programming

fstream は入出力両方を扱う /home/ishida/research/program/cpp/corpus/FileTokenizer?.cpp

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main(int arg, char *argv[]){
 string finame, foname;
 //  string ss;// strtok を使う場合は,
 // 読み込んだ行はchar 変数におさめる
 char ss[256];
 ifstream fin;
 ofstream fout;

 finame = argv[1];
 foname = argv[2];

 fin.open(finame.c_str());
 if(!fin) return 1;
 fout.open(foname.c_str());
 if(!fout) return 1;

 char seps[] = " !$\"%^&*()_+=#{}[]:;'`/?,.\t\n\u00a3"; 
 char crlf[] = "\r\n"; 
 char *token; 

 while(fin >> ss){
   //  while(fin.getline(ss,256)){// この場合,ss は char*型であるべき
   //  while(getline(fin,ss)){// この場合,ss は char*型であるべき
   token = strtok((char *)(const char *)ss, seps); 
   while( token != NULL ) 
     { 
	//"string" にトークンがなくなるまで繰り返します 
	char *m_token = token; 
	//リストへ表示し 
	fout << m_token << endl;
	// 次のトークンを取得します。 
	token = strtok( NULL, seps ); 
     } 
   //    fout << ss << endl;
 }
 fin.close();
 fout.close();
}
 
Link: Programming(3184d) Programming_C(3635d)
Last-modified: 2007-12-06 (木) 15:14:18 (4185d)