我试图打印到一个文本文件很多变量,但它不工作。 我检查并验证了我用正确的语法编写它。 我也检查了返回值,它是积极的,因此我知道它没有写入文件,但是当我打开文件时它是空的。问题使用fprintf
我很乐意提供一些帮助。 这是代码:
我发起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;
}
}
谢谢!
什么是'DynsaleDayPtr'?我没有看到它在任何地方宣布。 – 2011-03-16 23:45:59
也许我错过了它,但你在哪里打开文件? – jonsca 2011-03-16 23:47:14
您是否在写入记录后关闭了文件?当你说你打开它并发现它是空的,你的意思是你用文本编辑器或其他东西来看它,或者你的代码打开它并尝试读取它? – 2011-03-16 23:49:12