出力内容を新しいテキストファイルで保存するには?
プログラム
#include <stdio.h>
#include <string.h>
main()
{
char text[100];
char a[20], b[20], c[20], d[20], e[20], f[20];
char fname[20];
int i = 1;
FILE *fp;
printf("■ファイル名>>");
scanf("%s",fname);
fp=fopen(fname,"r");
if((fp = fopen(fname,"r")) == NULL){
printf("ファイルをオープンできませんでした。\n");
return 1;
}
else{
printf("ファイルをオープンしました。\n");
}
while( fscanf(fp, "%s", text) != EOF){
sscanf(text, "%[^,], %[^,], %[^,], %[^,], %[^,], %[^\0]", a, b, c ,d, e, f);
printf("%d回目\n",i++);
printf("全文:%s\n",text);
printf("1つ目:%s\n",a);
printf("2つ目:%s\n",b);
printf("3つ目:%s\n",c);
printf("4つ目:%s\n",d);
printf("5つ目:%s\n",e);
printf("6つ目:%s\n\n",f);
}
}
テキストファイル
ABCD,EFGH,IJKL,MNOP,QRST,UVWXWZ
abcd,efgh,ijkl,mnop,qrst,uvwxyz
あいうえお,かきくけこ,さしすせそ,たちつてと,なにぬねの,はひふへほ
テキストファイルから文字列を読み込み、変換させて出力させた内容を他のテキストファイルに保存するにはどのようにしたらいいのでしょうか?
お礼
有難うございます。 > write関数の使い方が間違っているのでは。 $ cat test6.c #include<stdio.h> int main(void){ FILE *fp1,*fp2; fp1=fopen("file.txt","w"); fp2=fopen("file.txt","a"); printf("fp1->fd=%d\n",fileno(fp1)); printf("fp2->fd=%d\n",fileno(fp2)); write(fileno(fp1),"first\n",6); write(fileno(fp2),"second\n",7); fclose(fp1); return 0; } $ gcc -o test6 test6.c $ test6est6.ctxtest6.c fp1->fd=3 fp2->fd=4 $ gcc -o test6 test6.c $ test6 fp1->fd=3 fp2->fd=4 $ cat ./file.txt first second となりました。 > またわざわざfopenで開いてfilenoを使ってファイルハンドル番号を取得する意味も > よくわかりません。無駄ではないですか。 そういわれればそうですね。