無題
Re:無題
>sizumaさん nonさん 初級者さん
回答ありがとうございます。
5X5の行列のサイズで、
「r.txt」に下のような数字が入っています。
(数字は1桁で半角、数字は手入力、空白の行もあり)
1 2
←空白
3 1 5
2 1 3 2 1
2 3
上記のファイルを読み込み、下記の数字に転置して、「w.txt」に下記の数字を
書き込むことを行っていますが、上手く転置できない状態です。
1 3 2 2
2 1 1 3
5 3
2
1
↑
空
白
/****************ファイル読み込み********************/
file=fopen("r.txt","r");
for(i=0; i<PI_H; i++){
for(j=0; j<PI_W; j++){
fscanf(file,"%d", &PixelData[j]);
}
}
fclose(file);
/*******************ファイル書き込み****************/
file=fopen("w.txt","w");
for(j=0; j<PI_W; j++){
for(i=1+j; i<PI_H; i++){
buf=PixelData[j];
PixelData[j]=PixelData[j];
PixelData[j]=buf;
if(PixelData[j]>0)fprintf(file,"%d ",PixelData[j]);
}fprintf(file,"\n");
}
fclose(file);
を作成しr.txtの数字を入力しましたが、
123152132123
13
315
21321
23
11
11
2
と出力されました。
回答ありがとうございます。
5X5の行列のサイズで、
「r.txt」に下のような数字が入っています。
(数字は1桁で半角、数字は手入力、空白の行もあり)
1 2
←空白
3 1 5
2 1 3 2 1
2 3
上記のファイルを読み込み、下記の数字に転置して、「w.txt」に下記の数字を
書き込むことを行っていますが、上手く転置できない状態です。
1 3 2 2
2 1 1 3
5 3
2
1
↑
空
白
/****************ファイル読み込み********************/
file=fopen("r.txt","r");
for(i=0; i<PI_H; i++){
for(j=0; j<PI_W; j++){
fscanf(file,"%d", &PixelData[j]);
}
}
fclose(file);
/*******************ファイル書き込み****************/
file=fopen("w.txt","w");
for(j=0; j<PI_W; j++){
for(i=1+j; i<PI_H; i++){
buf=PixelData[j];
PixelData[j]=PixelData[j];
PixelData[j]=buf;
if(PixelData[j]>0)fprintf(file,"%d ",PixelData[j]);
}fprintf(file,"\n");
}
fclose(file);
を作成しr.txtの数字を入力しましたが、
123152132123
13
315
21321
23
11
11
2
と出力されました。
Re:無題
preタグ使用しないと半角空白、タブは削除されちゃうから見づらくて。
1 3 2 2 2 1 1 3 5 3 2 1 /****************ファイル読み込み********************/ file=fopen("r.txt","r"); for(i=0; i<PI_H; i++){ for(j=0; j<PI_W; j++){ fscanf(file,"%d", &PixelData[j]); } } fclose(file); /*******************ファイル書き込み****************/ file=fopen("w.txt","w"); for(j=0; j<PI_W; j++){ for(i=1+j; i<PI_H; i++){ buf=PixelData[j]; PixelData[j]=PixelData[j]; PixelData[j]=buf; if(PixelData[j]>0)fprintf(file,"%d ",PixelData[j]); }fprintf(file,"\n"); } fclose(file);
Re:無題
添付テキストのような条件だったら動くソース。
参考にしてください。
参考にしてください。
#include <stdio.h> #include <string.h> #define PI_H 5 #define PI_W 5 int main(void) { FILE *file; char PixelData[PI_H][PI_W]; int read, i, j; char buf; memset(PixelData, ' ', sizeof(PixelData)); /****************ファイル読み込み********************/ file=fopen("r.txt","r"); for(i=0; i < PI_H; i++){ for(j=0; ; j++){ read = fgetc(file); if (read == '\n' || read == EOF) { break; } if (j < PI_W) { PixelData[j] = (char)read; } } } fclose(file); /*******************入れ替え****************/ for(j=0; j<PI_W; j++){ for(i=1+j; i<PI_H; i++){ buf=PixelData[j]; PixelData[j]=PixelData[j]; PixelData[j]=buf; } } /*******************ファイル書き込み****************/ file=fopen("w.txt","w"); for(i=0; i<PI_H; i++){ for(j=0; j<PI_W; j++){ fprintf(file, "%c", PixelData[j]); } fprintf(file, "\n"); } fclose(file); return 0; }