掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
csvファイルからNULLも含めてデータを読み込むには? (ID:54773)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> どうすれば良いでしょうか? 当たり前の話ですが、ライブラリの関数だけで実現できないロジックは自分で組み立てます。 // Cの例(オーバーフロー対策は省略) #include <stdio.h> #define COLS 16 // カラム数の上限 #define WIDTH 32 // 1カラムあたり文字数('\0'含む)の上限 int main() { const char* str = "a,111,,,2,bb"; // sample string char data[COLS][WIDTH]; int cols, i; const char* p; cols = i = 0; for( p = str; *p != '\0'; p++ ) { if( *p != ',' ) { data[ cols ][ i++ ] = *p; } else { data[ cols++ ][ i ] = '\0'; i = 0; } } data[ cols++ ][ i ] = '\0'; for( i = 0; i < cols; i++ ) { printf( "data[%d] = \"%s\"\n", i, data[ i ] ); } return 0; } // C++の例 #include <string> #include <vector> #include <iostream> int main() { using namespace std; const string str = "a,111,,,2,bb"; // sample string vector< string > data; string::size_type s = 0; for( string::size_type e = str.find_first_of( ',' ); e != string::npos; e = str.find_first_of( ',', s ) ) { data.push_back( str.substr( s, e - s ) ); s = e + 1; } data.push_back( str.substr( s ) ); for( vector< string >::size_type i; i < data.size(); ++i ) { cout << "data[" << i << "] = \""<< data[i] << "\"" << endl; } } /* 実行結果(C, C++共通) data[0] = "a" data[1] = "111" data[2] = "" data[3] = "" data[4] = "2" data[5] = "bb" */
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.