如何在C中调用fwrite函数后成功写入检查?
我在一个网站上找到了以下代码:如何在C中调用fwrite函数后成功写入检查?,c,fwrite,C,Fwrite,我在一个网站上找到了以下代码: struct person { int id; char fname[20]; char lname[20]; }; int main () { FILE *outfile; // open file for writing outfile = fopen ("person.dat", "w"); struct person inpu
struct person
{
int id;
char fname[20];
char lname[20];
};
int main ()
{
FILE *outfile;
// open file for writing
outfile = fopen ("person.dat", "w");
struct person input1 = {1, "rohan", "sharma"};
// write struct to file
fwrite (&input1, sizeof(struct person), 1, outfile);
if(fwrite != 0)
printf("contents to file written successfully !\n");
return 0;
}
fwrite
)fwrite
的值是多少不,那绝对不是正确的方法。正确的方法是:
if(fwrite(&input1, sizeof(struct person), 1, outfile)) != 1) {
/* Error writing */
}
但为了避免重复的幻数,这会更好:
size_t num = 1;
if(fwrite(&input1, sizeof(struct person), num, outfile)) != num) {
我发现很难相信任何网站会发布这样的垃圾代码。我知道Geeksforgeks不太值得信任,但这太糟糕了。这在很多方面都是错误的
如果(fwrite!=0)
是一个完全没有意义的检查。如果fwrite!=0将计算为false,这意味着对写入的函数调用将失败。该检查基本上意味着“是否写入空指针?”如果库函数是空指针,则说明确实有问题
fwrite
返回写入的元素数,在本例中应为一个元素
我之前写过一篇文章,但现在我需要将Geeksforgek添加到我建议远离的资源列表中。不,这绝对不是正确的方法。正确的方法是:
if(fwrite(&input1, sizeof(struct person), 1, outfile)) != 1) {
/* Error writing */
}
但为了避免重复的幻数,这会更好:
size_t num = 1;
if(fwrite(&input1, sizeof(struct person), num, outfile)) != num) {
我发现很难相信任何网站会发布这样的垃圾代码。我知道Geeksforgeks不太值得信任,但这太糟糕了。这在很多方面都是错误的
如果(fwrite!=0)
是一个完全没有意义的检查。如果fwrite!=0将计算为false,这意味着对写入的函数调用将失败。该检查基本上意味着“是否写入空指针?”如果库函数是空指针,则说明确实有问题
fwrite
返回写入的元素数,在本例中应为一个元素
我以前写过一篇文章,但现在我需要将Geeksforgek添加到我推荐的远离的资源列表中。C编译器可以回答所有问题。有趣的是,这是一个什么网站?这段代码是错误的,实际上并没有检查编写的成功与否。我建议看一看fwrite
的手册页。我在这里找到了代码:我对此投了赞成票,因为我认为最好能找到提供这种垃圾代码的网站。一个C编译器可以回答所有的问题。有趣的是,什么是网站?这段代码被破坏了,实际上并没有检查编写的成功与否。我建议看一下fwrite
的手册页。我在这里找到了代码:我对此投了更高的票,因为我认为调用提供这种垃圾代码的网站是很好的