fread(buffer=struct,struct的大小,数组中struct的计数,数组)是否可能?
到目前为止,我的函数如下所示:fread(buffer=struct,struct的大小,数组中struct的计数,数组)是否可能?,c,arrays,struct,fread,C,Arrays,Struct,Fread,到目前为止,我的函数如下所示: int orderList (struct artikel_t * order_arr, int arr_size_order) { struct artikel_t akt_artikel_order; int icount_order=0; struct order_list { int lfd_nr; int art_nr; char bezeichner[MAXCHAR]; int bestellmenge; fl
int orderList (struct artikel_t * order_arr, int arr_size_order)
{
struct artikel_t akt_artikel_order;
int icount_order=0;
struct order_list {
int lfd_nr;
int art_nr;
char bezeichner[MAXCHAR];
int bestellmenge;
float preis;
float gesamtpreis;};
struct order_list bestellung[arr_size_order];
while (fread(&akt_artikel_order, akt_artikel_order, arr_size_order, order_arr) < arr_size_order)
{
bestellung[icount_order].lfd_nr=icount_order;
bestellung[icount_order].art_nr=akt_artikel_order[icount_order].art_nr
strcpy(bestellung(icount_count).bezeichner, "akt_artikel_order.bezeichner");
bestellung[icount_order].bestellmenge=(akt_artikel_order[icount_order].min)*4);
bestellung[icount_order].preis=akt_artikel_order[icount_order].preis;
bestellung[icount_order].gesamtpreis=((akt_artikel_order[icount_order].preis)*(akt_artikel_order[icount_order].min)*4);
icount_order++;
}
}
int orderList(结构artikel\u t*order\u arr,int arr\u size\u order)
{
结构artikel_t akt_artikel_顺序;
int icount_order=0;
结构顺序表{
国际lfd_nr;
国际艺术中心;
char-bezeichner[MAXCHAR];
内特贝斯特门奇;
浮标;
float gesamtpreis;};
结构顺序列表最佳排列[排列大小顺序];
而(fread(&akt_artikel_订单、akt_artikel_订单、arr_大小订单、order_arr)
函数orderList接收struct artikel_t类型数组的第一个元素的地址,该数组是在另一个函数中创建的,并在orderList打开之前传递给main;此数组包含arr\u size\u order元素。然后,函数orderList应该创建一个struct order_list类型的新数组。然后,数组中每个结构的元素(lfd_nr、art_nr,…)将填充*orderArray指向的数据
稍后我将编写函数的其余部分(以有用的was等格式将数组发送到stdout)
我的问题是:fread函数是否正确编写,使用fread a)从数组读取和b)读取结构是否合法
我希望这是有意义的。是的,但由于填充的原因,它不会像你认为的那样。填充不是对我的结构进行排序,使它们都具有相同的长度,而与实际内容无关吗?因此,术语“akt_artikel_order”将是合法的大小规范?
size_t fread(void*ptr、size_t size、size_t nmemb、FILE*stream)
fread的最后一个参数必须是文件*
。如果你通过了一个结构artikel\u t*
,你的编译器应该会大惊小怪。