|
test.txtというファイルがあります。
そのファイルの文中に1行付け加えて同じファイル名で保存する方法を教わりました。
それはうまくいったんですが、これだと他のファイル名の物では動きません。
ファイル名の違う複数のファイル(内容はほぼ一緒)に対して行えるようにするにはどのようにしたらいいでしょうか。
とっても困ってます。よろしくお願いします。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define IN_FILE "a:\\test.txt" ←ここを全てのテキストファイルが開けるか手入力で指定できるようにしたいんです。
#define OUT_FILE "a:\\test2.txt"
FILE *fileOpen(char *,char *);
void stringSeparate(char *,char,char *);
int main(void)
{
FILE *in_fp;
FILE *out_fp;
char line[256];
char leftString[256];
in_fp = fileOpen(IN_FILE,"r");
out_fp = fileOpen(OUT_FILE,"w");
while(fgets(line,256,in_fp) != NULL){
if(memcmp(line,"name-No",14) == 0){
stringSeparate(line,'-',leftString);
fprintf(out_fp,"%s-No\n!\nテスト\n",leftString);
}
else{
fprintf(out_fp,"%s",line);
}
}
fclose(in_fp);
fclose(out_fp);
remove(IN_FILE);
rename(OUT_FILE,IN_FILE);
return 0;
}
FILE *fileOpen(char *p_filename,char *p_mode)
{
FILE *fp;
fp = fopen(p_filename,p_mode);
if(fp == NULL){
fprintf(stderr,"ファイル[%s]を開く事ができません。\n",p_filename);
exit(1);
}
return fp;
}
void stringSeparate(char *p_line,char kugiriMoji,char *p_leftString)
{
char tempLeftString[256];
int i=0;
while(*p_line != '\0'){
if(*p_line != kugiriMoji){
tempLeftString[i] = *p_line;
p_line++;
i++;
}
else{
strcpy(p_leftString,tempLeftString);
p_leftString[i] = '\0';
return;
}
}
}
|