

{"id":123316,"date":"2024-02-20T18:00:22","date_gmt":"2024-02-20T12:30:22","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=123316"},"modified":"2024-03-09T14:02:40","modified_gmt":"2024-03-09T08:32:40","slug":"printf-vs-fprintf-functions-in-c","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/printf-vs-fprintf-functions-in-c\/","title":{"rendered":"printf() vs fprintf() Functions in C \u2013 Key Differences"},"content":{"rendered":"<p>Outputting data is a fundamental task in C programming. The printf() and fprintf() functions are two primary methods for displaying program results and values. Choosing the right output tool is crucial based on your needs.<\/p>\n<p>This article will dive deep into printf() and fprintf(), highlighting key differences in usage, capabilities, performance, and applications. Code examples will demonstrate real-world scenarios for each one. By the end, you&#8217;ll understand precisely when to use printf() or fprintf() for any programming situation.<\/p>\n<h2>Printf() Function in C<\/h2>\n<p>The printf() function outputs formatted text to the standard output stream (stdout). By default, it prints to the console window.<\/p>\n<p><strong>Syntax<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">int printf(const char *format, ...);<\/pre>\n<p>It takes a format string specifying how to print the values, along with a variable number of arguments containing the values to print. It returns the number of characters printed.<\/p>\n<h3>Format Specifiers<\/h3>\n<p><strong>Commonly used format specifiers:<\/strong><\/p>\n<ul>\n<li><strong>%d &#8211;<\/strong> print as decimal integer<\/li>\n<li><strong>%f &#8211;<\/strong> print as floating point<\/li>\n<li><strong>%s &#8211;<\/strong> print as a string<\/li>\n<li><strong>%c &#8211;<\/strong> print as character<\/li>\n<li><strong>%p &#8211;<\/strong> print a pointer address<\/li>\n<\/ul>\n<p><strong>Examples<\/strong><\/p>\n<p><strong>Printing different data types:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">int num = 10;\r\nfloat gpa = 3.5;\r\nchar grade = 'A';\r\n\r\n\r\nprintf(\"Integer: %d\\n\", num); \/\/ Prints 10\r\nprintf(\"GPA: %f\\n\", gpa); \/\/ Prints 3.500000\r\nprintf(\"Grade: %c\\n\", grade); \/\/ Prints A<\/pre>\n<p><strong>Printing a string:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">char *name = \"DataFlair\";\r\n\r\n\r\nprintf(\"Name: %s\\n\", name); \/\/ Prints Name: DataFlair<\/pre>\n<p><strong>Pros<\/strong><\/p>\n<ul>\n<li>Simple syntax for basic printing<\/li>\n<li>Fast execution for console output<\/li>\n<li>Output by default goes to stdout<\/li>\n<\/ul>\n<p><strong>Cons<\/strong><\/p>\n<ul>\n<li>Only prints to stdout, lacks file output support<\/li>\n<li>Limited formatting options<\/li>\n<li>No built-in error handling<\/li>\n<\/ul>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2024\/02\/printing-a-string.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-134517 size-full\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2024\/02\/printing-a-string.webp\" alt=\"printing a string\" width=\"600\" height=\"315\" \/><\/a><\/p>\n<h3>Fprintf() Function in C<\/h3>\n<p>The fprintf() function also outputs formatted text but to a specified stream. This allows printing of files, pipes, and more.<\/p>\n<p><strong>Syntax<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">int fprintf(FILE *stream, const char *format, ...);<\/pre>\n<p>The key difference vs printf() is the FILE* stream argument. This tells fprintf() where to direct the output.<\/p>\n<h4>File Streams<\/h4>\n<p><strong>Some common file streams:<\/strong><\/p>\n<ul>\n<li><strong>stdout &#8211;<\/strong> Standard output stream<\/li>\n<li><strong>stderr &#8211;<\/strong> Standard error stream<\/li>\n<li><strong>File pointer &#8211;<\/strong> From fopen(), points to file on disk<\/li>\n<\/ul>\n<p><strong>Examples<\/strong><\/p>\n<p><strong>Printing to a file:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">FILE *fp;\r\nfp = fopen(\"output.txt\", \"w\");\r\n\r\n\r\nfprintf(fp, \"Hello world!\"); \r\n\r\n\r\nfclose(fp);<\/pre>\n<p>This prints &#8220;Hello world!&#8221; to output.txt instead of the console.<\/p>\n<p><strong>Printing to stderr:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">fprintf(stderr, \"Error: %s\", errorMsg);<\/pre>\n<p>Prints error message to stderr stream.<\/p>\n<p><strong>Pros<\/strong><\/p>\n<ul>\n<li>Supports file output<\/li>\n<li>More formatting options<\/li>\n<li>Can return error codes<\/li>\n<\/ul>\n<p><strong>Cons<\/strong><\/p>\n<ul>\n<li>Slightly more complex syntax<\/li>\n<li>File output has more overhead<\/li>\n<\/ul>\n<h3>Key Differences In-Depth<\/h3>\n<table>\n<tbody>\n<tr>\n<td><b>Feature<\/b><\/td>\n<td><b>printf()<\/b><\/td>\n<td><b>fprintf()<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Output Destination<\/span><\/td>\n<td><span style=\"font-weight: 400\">By default, it prints to the standard output (stdout), which is usually the console.<\/span><\/td>\n<td><span style=\"font-weight: 400\">Can print to any valid output stream specified by the file pointer argument, including stdout, files, pipes, etc.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Formatting Capabilities<\/span><\/td>\n<td><span style=\"font-weight: 400\">Supports basic formatting like %d for integers and %s for strings<\/span><\/td>\n<td><span style=\"font-weight: 400\">Has additional formatting options for controlling field width, precision, and alignment when printing<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Error Handling<\/span><\/td>\n<td><span style=\"font-weight: 400\">No direct error handling. Limited robustness<\/span><\/td>\n<td><span style=\"font-weight: 400\">Returns error codes from I\/O operations that can be checked directly in code<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Performance<\/span><\/td>\n<td><span style=\"font-weight: 400\">Very fast and efficient for simple stdout printing<\/span><\/td>\n<td><span style=\"font-weight: 400\">Slower due to disk I\/O when writing output to files<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Flexibility<\/span><\/td>\n<td><span style=\"font-weight: 400\">Simple and easy to use for basic console printing<\/span><\/td>\n<td><span style=\"font-weight: 400\">It is more flexible since output can be directed to different destinations<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Use Cases<\/span><\/td>\n<td><span style=\"font-weight: 400\">Ideal for simple program output, status messages, etc<\/span><\/td>\n<td><span style=\"font-weight: 400\">Better for debugging, logging, writing output files, robust programs<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Header File<\/span><\/td>\n<td><span style=\"font-weight: 400\">#include &lt;stdio.h&gt;<\/span><\/td>\n<td><span style=\"font-weight: 400\">#include &lt;stdio.h&gt;<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Declaration<\/span><\/td>\n<td><span style=\"font-weight: 400\">int printf(const char *format, &#8230;);<\/span><\/td>\n<td><span style=\"font-weight: 400\">int fprintf(FILE *stream, const char *format, &#8230;);<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Return Value<\/span><\/td>\n<td><span style=\"font-weight: 400\">Returns the number of characters printed<\/span><\/td>\n<td><span style=\"font-weight: 400\">Returns the number of characters printed or negative number if an error<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Recommended Usage Guidelines<\/h3>\n<p><strong>Based on their technical differences, here are some general guidelines on when to use printf() vs. fprintf():<\/strong><\/p>\n<h4>Use printf() when:<\/h4>\n<ul>\n<li>You just need quick console printing<\/li>\n<li>Output speed is the top priority<\/li>\n<li>You don&#8217;t need to write output to files<\/li>\n<\/ul>\n<h4>Use fprintf() when:<\/h4>\n<ul>\n<li>You need to print output to files<\/li>\n<li>Error checking and robustness is important<\/li>\n<li>Flexible formatting options are required<\/li>\n<\/ul>\n<p>Neither is necessarily &#8220;better&#8221; &#8211; it depends on the specific program needs.<\/p>\n<h3>Performance Benchmark Comparison<\/h3>\n<p>To demonstrate the performance differences, here is a simple benchmark test comparing printf() and fprintf():<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">#include &lt;stdio.h&gt;\r\n#include &lt;time.h&gt;\r\n\r\n\r\n#define NUM_ITERS 1000000\r\n\r\n\r\nint main() {\r\n\r\n\r\n  clock_t t;\r\n  int i; \r\n  FILE *fp;\r\n  \r\n  \/\/ printf() time test\r\n  t = clock();\r\n  for (i = 0; i &lt; NUM_ITERS; i++) {\r\n    printf(\"Hello World\\n\");\r\n  }\r\n  t = clock() - t;\r\n\r\n\r\n  \/\/ fprintf() time test\r\n  fp = fopen(\"output.txt\", \"w\"); \r\n\r\n\r\n  t = clock();\r\n  for (i = 0; i &lt; NUM_ITERS; i++) {\r\n    fprintf(fp, \"Hello World\\n\");\r\n  }\r\n  t = clock() - t;\r\n  \r\n  fclose(fp);\r\n\r\n\r\n  double printf_time = ((double)t)\/CLOCKS_PER_SEC; \r\n  double fprintf_time = ((double)t)\/CLOCKS_PER_SEC;\r\n\r\n\r\n  printf(\"printf time: %f seconds\\n\", printf_time);\r\n  printf(\"fprintf time: %f seconds\\n\", fprintf_time);\r\n\r\n\r\n  return 0;\r\n}<\/pre>\n<p><strong>On my system, a sample run gave these results:<\/strong><br \/>\n<strong>printf time:<\/strong> 0.097615 seconds<br \/>\n<strong>fprintf time<\/strong>: 2.393325 seconds<\/p>\n<p>As expected, printf() was significantly faster due to lower overhead. But fprintf() provides that important file-writing capability.<\/p>\n<h3>Real-World Usage Scenarios<\/h3>\n<p>To tie it all together, here are some real-world examples that demonstrate good usage of printf() and fprintf():<\/p>\n<h4>Scenario 1 &#8211; Simple command line tool to print status<\/h4>\n<p><strong>Since we just need quick stdout printing, printf() is best:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">void printStatus(int code) {\r\n  if (code == 0) {\r\n    printf(\"Success!\\n\");\r\n  }\r\n  else {\r\n    printf(\"Error code: %d\\n\", code); \r\n  }\r\n}<\/pre>\n<h4>Scenario 2 &#8211; Writing logs for a server<\/h4>\n<p><strong>We need file output, so fprintf(logfile) makes sense:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">void logMessage(char *msg) {\r\n  fprintf(logfile, \"%s: %s\\n\", currentTime(), msg); \r\n}<\/pre>\n<p>This demonstrates realistic use cases based on their specific needs.<\/p>\n<h3>Conclusion<\/h3>\n<p>printf() and fprintf() are versatile output functions with distinct advantages based on the programming situation. printf() is perfect for fast and simple console printing, while fprintf() enables file output and robust error handling. By understanding the key differences in output, formatting, speed, and use cases, you can decide which one fits your needs. With the power to direct output flexibly, C programmers can build robust systems and provide meaningful program results.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Outputting data is a fundamental task in C programming. The printf() and fprintf() functions are two primary methods for displaying program results and values. Choosing the right output tool is crucial based on your&#46;&#46;&#46;<\/p>\n","protected":false},"author":86671,"featured_media":123929,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19488],"tags":[23914,29133,2263,29971,29968,29970,29969],"class_list":["post-123316","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-c-programming","tag-c-programming","tag-c-tutorials","tag-c","tag-comparison-between-printf-and-fprintf-function-in-c","tag-difference-between-printf-and-fprintf-in-c","tag-printf-and-fprintf-in-c","tag-printf-vs-fprintf-in-c"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>printf() vs fprintf() Functions in C \u2013 Key Differences - DataFlair<\/title>\n<meta name=\"description\" content=\"printf() is perfect for fast and simple console printing, while fprintf() enables file output and robust error handling.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/printf-vs-fprintf-functions-in-c\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"printf() vs fprintf() Functions in C \u2013 Key Differences - DataFlair\" \/>\n<meta property=\"og:description\" content=\"printf() is perfect for fast and simple console printing, while fprintf() enables file output and robust error handling.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/printf-vs-fprintf-functions-in-c\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-02-20T12:30:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-09T08:32:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/11\/printf-vs-fprintf.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"TechVidvan Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"TechVidvan Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"printf() vs fprintf() Functions in C \u2013 Key Differences - DataFlair","description":"printf() is perfect for fast and simple console printing, while fprintf() enables file output and robust error handling.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/printf-vs-fprintf-functions-in-c\/","og_locale":"en_US","og_type":"article","og_title":"printf() vs fprintf() Functions in C \u2013 Key Differences - DataFlair","og_description":"printf() is perfect for fast and simple console printing, while fprintf() enables file output and robust error handling.","og_url":"https:\/\/data-flair.training\/blogs\/printf-vs-fprintf-functions-in-c\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2024-02-20T12:30:22+00:00","article_modified_time":"2024-03-09T08:32:40+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/11\/printf-vs-fprintf.webp","type":"image\/webp"}],"author":"TechVidvan Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"TechVidvan Team","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/printf-vs-fprintf-functions-in-c\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/printf-vs-fprintf-functions-in-c\/"},"author":{"name":"TechVidvan Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/0e594f928e31fc96628ac40f6ae74f49"},"headline":"printf() vs fprintf() Functions in C \u2013 Key Differences","datePublished":"2024-02-20T12:30:22+00:00","dateModified":"2024-03-09T08:32:40+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/printf-vs-fprintf-functions-in-c\/"},"wordCount":792,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/printf-vs-fprintf-functions-in-c\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/11\/printf-vs-fprintf.webp","keywords":["c programming","c tutorials","C++","comparison between printf() and fprintf() function in c","difference between printf and fprintf in c","printf() and fprintf() in c","printf() vs fprintf() in c"],"articleSection":["C Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/printf-vs-fprintf-functions-in-c\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/printf-vs-fprintf-functions-in-c\/","url":"https:\/\/data-flair.training\/blogs\/printf-vs-fprintf-functions-in-c\/","name":"printf() vs fprintf() Functions in C \u2013 Key Differences - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/printf-vs-fprintf-functions-in-c\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/printf-vs-fprintf-functions-in-c\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/11\/printf-vs-fprintf.webp","datePublished":"2024-02-20T12:30:22+00:00","dateModified":"2024-03-09T08:32:40+00:00","description":"printf() is perfect for fast and simple console printing, while fprintf() enables file output and robust error handling.","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/printf-vs-fprintf-functions-in-c\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/printf-vs-fprintf-functions-in-c\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/printf-vs-fprintf-functions-in-c\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/11\/printf-vs-fprintf.webp","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/11\/printf-vs-fprintf.webp","width":1200,"height":628,"caption":"printf() vs fprintf()"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/printf-vs-fprintf-functions-in-c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"C Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/c-programming\/"},{"@type":"ListItem","position":3,"name":"printf() vs fprintf() Functions in C \u2013 Key Differences"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/0e594f928e31fc96628ac40f6ae74f49","name":"TechVidvan Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/c89190da3d4010c71ba476b618ab10fdc2335c82cdfa0ad5002d98d0f2473444?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c89190da3d4010c71ba476b618ab10fdc2335c82cdfa0ad5002d98d0f2473444?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c89190da3d4010c71ba476b618ab10fdc2335c82cdfa0ad5002d98d0f2473444?s=96&d=mm&r=g","caption":"TechVidvan Team"},"description":"TechVidvan Team provides high-quality content &amp; courses on AI, ML, Data Science, Data Engineering, Data Analytics, programming, Python, DSA, Android, Flutter, full stack web dev, MERN, and many latest technology.","url":"https:\/\/data-flair.training\/blogs\/author\/test001\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/123316","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/86671"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=123316"}],"version-history":[{"count":12,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/123316\/revisions"}],"predecessor-version":[{"id":134520,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/123316\/revisions\/134520"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/123929"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=123316"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=123316"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=123316"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}