我正在尝试将许多变量打印到文本文件,但是它不起作用。
我检查并确认我以正确的语法编写了它。
我还检查了返回值,它是正数,因此我知道它确实已写入文件,但是当我打开文件时,它为空。

我很乐意提供帮助。
这是代码:

我主要启动DynsaleDayPtr:

FILE* DynsaleDayPtr = CreateTextFiles("sale_day.txt");


创建函数:

FILE* CreateTextFiles (char* fileName)
{
    FILE* saleFilePtr=NULL;

    if((saleFilePtr=fopen(fileName,"a+"))==NULL)
        printf("File couldn't be opened\n");
    return saleFilePtr;
}


对函数TextAddSale的调用是通过主要调用的函数完成的:
TextAddSale(DynSaleDayPtr,dynNumOfRecords);

Bool TextAddSale (FILE* DynsaleDayPtr, int* dynNumOfRecords)
{

    char id[6];
    char name [50];
    char priceChar[20];
    char* tmp = NULL;
    int price=-1;
    DynamicRecord * newRec=NULL;

    scanf("%s%s%s",id,name,priceChar);

    newRec = (DynamicRecord *)malloc(sizeof(DynamicRecord));
    if (newRec == NULL)
        return False;
    tmp = (char*)malloc(strlen(name)+1);
    if (tmp == NULL)
    {
        free (newRec);
        return False;
    }
    strcpy(tmp,name);
    newRec->productName = tmp;
    strcpy(newRec->productId, id);
    newRec->productPrice=atoi (priceChar);

    if (fprintf(DynsaleDayPtr,"%d %s %s %d", strlen(newRec->productName),
    newRec->productId, newRec->productName, newRec->productPrice)>0)
    {
        *dynNumOfRecords=(*dynNumOfRecords)+1;
        return True;
    }
}


谢谢!

最佳答案

您需要冲洗流。

fflush(FILE*);


当然,如果已完成,则必须关闭流。

fclose(FILE*);

10-06 00:39