در زبان C، خروجی استاندارد (Standard Output) معمولاً به صفحهنمایش (ترمینال یا کنسول) اشاره دارد. برای نمایش اطلاعات به کاربر، کتابخانهٔ استاندارد C تابع printf() را در اختیار برنامهنویسان قرار میدهد که پرکاربردترین و انعطافپذیرترین روش برای چاپ خروجی در C محسوب میشود .
تابع printf() بخشی از کتابخانهٔ stdio.h (Standard Input Output) است و برای استفاده از آن، باید این هدر فایل را در ابتدای برنامه شامل کنید:
#include <stdio.h>
printf() — چاپ متن سادهسادهترین کاربرد تابع printf()، چاپ یک رشتهٔ ثابت (متن) بر روی خروجی استاندارد است. برای این کار، کافی است رشتهٔ مورد نظر را داخل گیومههای دوتایی (" ") بهعنوان آرگومان به تابع پاس دهید:
#include <stdio.h> int main() { printf("Hello World!"); return 0; }
خروجی در ترمینال:
Hello World!
۱. حساسیت به حروف بزرگ و کوچک (Case Sensitivity)
تابع printf() دقیقاً همان رشتهٔ دادهشده را چاپ میکند. بنابراین، حروف بزرگ و کوچک در خروجی دقیقاً رعایت میشوند:
printf("Hello"); // خروجی: Hello printf("HELLO"); // خروجی: HELLO printf("hello"); // خروجی: hello
این سه دستور، سه خروجی متفاوت تولید میکنند.
۲. چاپ چندین رشته یا متن جداگانه
اگر بخواهید چندین رشته را با هم چاپ کنید، میتوانید از چندین فراخوانی printf() پشت سر هم استفاده کنید، یا یک رشتهٔ واحد با چند بخش بنویسید. در هر دو حالت، خروجی بهصورت پشت سر هم چاپ میشود مگر آنکه کاراکترهای خاص (مثل newline) را برای ایجاد خط جدید اضافه کنید :
printf("Hello "); printf("World"); printf("!"); // خروجی: Hello World!
همانطور که میبینید، printf اول بعد از کلمهٔ Hello یک فاصله دارد؛ در غیر این صورت خروجی بهصورت HelloWorld! چاپ میشد.
در رشتههای C، برخی کاراکترها معنای ویژهای دارند و با یک بکاسلش (\) همراه میشوند. این کاراکترها کاراکترهای فرار یا Escape Sequences نامیده میشوند و به ما امکان میدهند کاراکترهایی را چاپ کنیم که مستقیماً قابل تایپ نیستند (مثل " یا \) یا کنترلهایی روی فرمت خروجی داشته باشیم .
| کاراکتر فرار | نام | توضیح |
|---|---|---|
\n | Newline | خط جدید (رفتن به ابتدای خط بعدی) |
\t | Tab | فاصلهٔ افقی (معادل چند فاصله) |
\\ | Backslash | چاپ یک بکاسلش |
\" | Double Quote | چاپ یک گیومهٔ دوتایی |
\' | Single Quote | چاپ یک گیومهٔ تکی |
\a | Alert (Bell) | صدای هشدار (زنگ) |
اگر بخواهید یک گیومهٔ دوتایی را بهعنوان بخشی از متن چاپ کنید، نمیتوانید مستقیماً از " داخل رشته استفاده کنید، زیرا کامپایلر آن را پایان رشته تفسیر میکند. بهجای آن از \" استفاده میشود:
printf("He said: \"Hello!\""); // خروجی: He said: "Hello!"
بههمین ترتیب برای چاپ خود بکاسلش:
printf("C:\\Program Files\\MyApp"); // خروجی: C:\Program Files\MyApp
printf() با متغیرها (پیشنمایش)هرچند بخش اصلی این درس چاپ متن ساده است، اما آشنایی اولیه با چاپ متغیرها در کنار متن، درک بهتری از کاربرد printf() ایجاد میکند. برای چاپ مقدار متغیرها از قالببندی (Format Specifiers) استفاده میشود که با علامت درصد (%) شروع میشوند:
int age = 25; printf("I am %d years old.", age); // خروجی: I am 25 years old.
در این مثال، %d یک جایگزین برای مقدار متغیر صحیح age است. این موضوع بهطور کامل در درس مربوط به قالببندی (Format Specifiers) پوشش داده خواهد شد.
| تابع | توضیح | کاربرد اصلی |
|---|---|---|
printf() | چاپ خروجی قالببندیشده | رایجترین روش، مناسب برای متن و متغیرها |
puts() | چاپ یک رشته به همراه خط جدید خودکار | چاپ سریع یک رشتهٔ ثابت |
putchar() | چاپ یک کاراکتر | چاپ کاراکترهای تکی |
نکته حرفهای: برای چاپ صرفاً یک رشتهٔ ثابت، استفاده از
puts("Hello");اندکی سریعتر ازprintf("Hello\n");است، زیراputsخودش\nرا اضافه میکند و نیاز به پردازش قالببندی ندارد. با این حال،printfبهدلیل انعطافپذیری بیشتر، انتخاب اصلی اکثر برنامهنویسان است .
#include <stdio.h>اگر هدر فایل مربوطه را نیاورید، کامپایلر اخطار یا خطای عدم تطابق نوع (Implicit Declaration) میدهد:
// اشتباه: stdio.h شامل نشده است int main() { printf("Hello"); return 0; } // کامپایلر: warning: implicit declaration of function 'printf'
در C، کاراکترها با ' ' و رشتهها با " " مشخص میشوند. استفاده از گیومهٔ تکی برای رشته باعث خطای کامپایل میشود:
printf('Hello'); // خطای کامپایل: character constant too long
اگر از %d یا سایر قالببندیها استفاده کنید اما متغیر متناظر را ارائه ندهید، کامپایلر ممکن است خطایی ندهد اما خروجی غیرقابلپیشبینی خواهد بود:
printf("Age: %d"); // خروجی نامشخص (Garbage Value)
برای چاپ متن در C از تابع printf() که در stdio.h تعریف شده استفاده میشود
متون ثابت باید داخل " " (گیومههای دوتایی) قرار گیرند
از کاراکترهای فرار مانند \n برای کنترل فرمت خروجی استفاده میشود
برای چاپ کاراکترهای ویژه مانند " یا \ باید از \" و \\ استفاده کرد
همیشه هدر فایل مناسب را شامل کنید تا کامپایلر تابع را بشناسد
این محتوا کاملا رایگان توسط تیم کدلپر ترجمه شده و در اختیار شما کاربران عزیز قرار گرفته است، هر گونه کپی برداری برای مقاصد غیر رایگان و بدون ذکر منبع، مورد پیگیری قانونی قرار میگیرد.
ترجمه شده از منبع: منبع مستندات