私はC言語とプログラミング一般にはかなり新しいので、私の問題は不明です。私はコードを実行し、新しい出力ファイルを開くたびに、構造体のデータは唯一のゼロです。ここに私のコードです....私は質問の一番下にテキストファイルの内容を入れました。前もって感謝します。(C言語)、テキストファイルを構造体の配列に読み込んで配列に新しいテキストファイルを書き込む
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int id;
char description[40];
double mancost;
double sellprice;
} ItemInfo;
int readInfo(ItemInfo input[]);
void listData(ItemInfo input[], int i);
int main(){
ItemInfo input [200];
int i;
i = readInfo(input);
listData (input, i) ;
return 0;
}
int readInfo(ItemInfo input[]) {
FILE *fin;
int i = 0;
fin = fopen("C:/Users/ecrooks98/CLionProjects/untitled5/p6-initial.txt", "r");
if(fin == NULL) {
printf("File cannot be opened\n");
}
else {
while(!feof(fin)) {
fscanf(fin, "%d\t", &input[i].id);
fscanf(fin, "%39[^\t\n]s\t", input[i].description);
fscanf(fin, "%lf\t", &input[i].mancost);
fscanf(fin, "%lf\n", &input[i].sellprice);
i++;
}
fclose(fin);
}
return i;
}
void listData(ItemInfo input [], int i) {
FILE *fout;
int j;
fout = fopen("output.txt", "w");
for (j = 0; j < i; j++) {
fprintf(fout, "%d\t", input[i].id);
fprintf(fout, "%s\t", input[i].description);
fprintf(fout, "%lf\t", input[i].mancost);
fprintf(fout, "%lf\n", input[i].sellprice);
}
}
iも入力しています私のテキストファイルは、この
2250 shoes 3.00 80.00
2251 hat .50 20.00
2252 iphone .10 600.00
2253 grill 80.00 100.00
'listData'関数では、 'input [j] .id'と' [i] 'ではなく、残りの部分を出力する必要があります。 –