c言語 iconv
msys環境で実行して,指定されたファイルの文字コードをShift-JISに変換して表示するコードを作成しているのですがうまく表示されません.何がいけないのでしょうか.第1引数に変換対象のファイル名,第2引数にファイルの文字コードを指定しています.
#include <stdio.h>
#include <string.h>
#include <iconv.h>
int main(int argc, char *argv[])
{
iconv_t conv;
char src[10000];
char dst[10000];
int src_len = strlen(src);
int dst_len = sizeof(dst) - 1;
char *buf_in;
char *buf_out;
FILE *fp;
fp = fopen(argv[1], "r");
if(NULL == fp)
{
printf("ファイルを開けません\n");
}
else
{
while(fgets(src, 10000, fp) != NULL)
{
buf_in = src;
buf_out = dst;
/* 変換器を作成 */
conv = iconv_open("Shift-JIS", argv[2]);
/* 変換 */
iconv(conv, &buf_in, &src_len, &buf_out, &dst_len);
*buf_out = '\0'; /* 終末処理 */
/* 文字コード後の文字列を表示 */
printf("%s\n", dst);
}
/* 変換器を終了 */
iconv_close(conv);
/*ファイルを閉じる*/
fclose(fp);
}
return 0;
}