CSVファイルを行単位で読み込み、その中のカンマを水平タブに変換する。その後resultファイルで出力
というプログラムなんですが、#define buff_sizeのサイズによって、出力したファイルが化けるのですが原因はなんでしょうか。以下ソースです。
#include<stdio.h>
#include<string.h>
#define buff_size 2
char g_buffer[buff_size]; char strafter[buff_size]; int subrtn1();
int main(){
FILE *fp; FILE *result;
fp = fopen("sample.csv", "rt");
if ( !fp ){
printf("ファイルオープンエラー\n");
return;
}
result = fopen("result", "w");
while( fgets( g_buffer, buff_size, fp ) != '\0' ){
*strafter = subrtn1(g_buffer);
if ( EOF == fprintf(result, strafter) )
printf("ファイル書き込みエラー\n");
}
fclose(fp); fclose(result);
return ;
}
int subrtn1(){
int i = 0;
while ( g_buffer[i] != '\0' )
{
strafter[i] = ( g_buffer[i] == ',' ) ? '\t' : g_buffer[i];
++i;
}
return *strafter;
}