ファイルに文字列を書く
ファイルを2つ読み込んでファイルを書き直そうとしたのですが
2度目に書き込もうとしたときに改行の書き込みがおかしくなってしまいます
してほしいところで改行を一回だけしてほしいと思っているのですが
実際には多数改行されます
どうしたら改行が一回だけになりますか?
---ソース---
#include <stdio.h>
void main(void){
FILE *fp;
char *tm[1000];
char buf[400];
int i=1,sei;
fp= fopen("now.txt","w+");
fprintf(fp,"もも");
fclose(fp);
//何で最初に書き込んでるんだ?
//という突っ込みがあるでしょうが本当に作りたいプログラムは最初にファイルに書き込まないといけないためです。
fp= fopen("now.txt","r");
while( fgets( buf, 400, fp ) != NULL ){
tm[0]=(char*)malloc(strlen(buf)+1);
strcpy(tm[0], buf);
}
fclose(fp);
fp =fopen("moto.txt","r");
while( fgets( buf, 400, fp ) != NULL ){
if(i<999){
tm[i] = (char*)malloc(strlen(buf+1));
strcpy(tm[i], buf);
i++;
}
else{
tm[999] = (char*)malloc(strlen(buf+1));
strcpy(tm[999], buf);
}
}
fclose(fp);
if(i<1000){
sei=i;
}
else{
sei=1000;
}
fp =fopen("chat_deta.txt","w+");
for(i=0;i<sei;i++){
fprintf(fp,"%s\n",tm[i]);
}
if(i!=(sei-1)){
fprintf(fp,"\n");
}
for(i=0;i<sei;i++){
free(tm[i]);
}
fclose(fp);
}
}
---now.txt---
もも
---moto.txt---
オレンジ
みかん
お礼
わざわざ些細な質問お答えいただき、ありがとうございました