ページ 11

ランタイムエラー

Posted: 2009年11月08日(日) 10:52
by dic
vector<string> に格納している内容をテキストに出力するという関数を自作してるのですが
ランタイムエラーというのがでて エラーが起きてるようですが、原因がまったくわかりません

ソースは以下のとおりとなってます
void	DebugOut( const vector<string> *v, char *filename ) {
	int	i;
	FILE	*file = fopen( filename, "wt" );
	for( i=0; i<v->size(); i++ ) {
		char	buf[10240];

		//	文字列の長さチェック 開始
		int	len = strlen( v->at(i).c_str() );
		printf( "i = %d  len = %d\n", i, len );
		if( len >= 10240 ) {
			fputs( "over! error\n", file );
			continue;
		}
		//	文字列の長さチェック 終了

		memset( buf, 0, sizeof(buf) );
		sprintf( buf, v->at(i).c_str() );
		fputs( buf, file );
	}
	fclose( file );
}
どなたかエラーの原因が分かるかたいませんでしょうか?

Re:ランタイムエラー

Posted: 2009年11月08日(日) 11:29
by dic
自己解決しました

sprintf( buf, v->at(i).c_str() );



strcpy( buf, v->at(i).c_str() );

に変更したらエラーがでなくなりました

Re:ランタイムエラー

Posted: 2009年11月08日(日) 16:59
by たかぎ
文字列に % が含まれていたのでしょうね。

Re:ランタイムエラー

Posted: 2009年11月09日(月) 23:22
by dic
解決おしてませんでした
すいません