C 文字列操作 新しいページはコチラ
提供: yonewiki
(→文字列ファイルへの入出力) |
(→文字列ファイルへの入出力) |
||
4,435行: | 4,435行: | ||
まずは、テキストから文字列の読み込みのサンプルをぺたぺたとしたいのですが、一応、標準の関数でサポートされている範囲の文字コードはShiftJISとUTF-8とUTF-16でVisualStudio2005からfopenやwfopen関数が拡張されて、2番目の引数ファイルオープンモード文字列に ccs=UTF-8とかccs=UTF-16LEと記載することで、ファイルポインタをつかってのストリーム入力時fgetws関数でワイド文字(UNICODE)に変換してくれます。テキストは自分で作るといいのですが、自分は以下のような簡単なテキストを文字コード別に準備したので、参考にリンクを張っておきます。なんてことないテキストファイルなので、無価値なのものです。 | まずは、テキストから文字列の読み込みのサンプルをぺたぺたとしたいのですが、一応、標準の関数でサポートされている範囲の文字コードはShiftJISとUTF-8とUTF-16でVisualStudio2005からfopenやwfopen関数が拡張されて、2番目の引数ファイルオープンモード文字列に ccs=UTF-8とかccs=UTF-16LEと記載することで、ファイルポインタをつかってのストリーム入力時fgetws関数でワイド文字(UNICODE)に変換してくれます。テキストは自分で作るといいのですが、自分は以下のような簡単なテキストを文字コード別に準備したので、参考にリンクを張っておきます。なんてことないテキストファイルなので、無価値なのものです。 | ||
− | + | [[ファイル:文字列操作サンプル用文字コード4種セット.lzh]] | |
JISやEUCといったサポートされていない文字コードのテキストファイルの場合はバイナリモードでファイルを読み込む必要があり、1バイトづつ処理をして、文字列として変換したりすることで、文字列操作を行います。変換そのものは先に紹介した文字コード変換で対応することが可能ですので、とりこんだバイナリコードをどうやって変換関数のなかに収めるかというのが課題になると思います。その例はのちほど考えるとして、まずはオーソドックスなファイルの読み込みからやってみます。 | JISやEUCといったサポートされていない文字コードのテキストファイルの場合はバイナリモードでファイルを読み込む必要があり、1バイトづつ処理をして、文字列として変換したりすることで、文字列操作を行います。変換そのものは先に紹介した文字コード変換で対応することが可能ですので、とりこんだバイナリコードをどうやって変換関数のなかに収めるかというのが課題になると思います。その例はのちほど考えるとして、まずはオーソドックスなファイルの読み込みからやってみます。 | ||
4,495行: | 4,495行: | ||
errno_t errNo; | errno_t errNo; | ||
int nCloseCnt; | int nCloseCnt; | ||
− | wchar_t pwcStrFilePathShiftJIS[] = L"C:\\ | + | wchar_t pwcStrFilePathShiftJIS[] = L"C:\\...\\...\\...\\test.txt";//...\\...\\...には正確なパスを指定。 |
− | wchar_t pwcStrFilePathUtf8Bom[] = L"C:\\ | + | wchar_t pwcStrFilePathUtf8Bom[] = L"C:\\...\\...\\...\\test_utf8.txt"; |
− | wchar_t pwcStrFilePathUtf8[] = L"C:\\ | + | wchar_t pwcStrFilePathUtf8[] = L"C:\\...\\...\\...\\test_utf8N.txt"; |
− | wchar_t pwcStrFilePathUtf16LE[] = L"C:\\ | + | wchar_t pwcStrFilePathUtf16LE[] = L"C:\\...\\...\\...\\test_utf16LE.txt"; |
wchar_t pwcStrGohan[] = L"ごはんを食べたよ。\r\n";//\r\n = CR LF = 0x0D 0x0A | wchar_t pwcStrGohan[] = L"ごはんを食べたよ。\r\n";//\r\n = CR LF = 0x0D 0x0A |