Theory
Marksheet marksheet જેવી દેખાવી જોઈએ
Marks program હવે બધું compute કરી શકે છે. પણ એનું output ransom note જેવું દેખાય છે: values ગમે ત્યાં વેરાયેલી, lines એકબીજા સાથે અથડાતી.
ખરી marksheet માં એક name line હોય, ચોખ્ખાં labels, અને result અલગ મૂકેલું.
Presentation એ output statements નું કામ છે, અને C તમને જુદા જુદા કદનાં 4 મોં આપે છે: printf (ગમે તે કહે), puts (એક string કહે, પછી નવી line જાતે લઈ લે), putchar અને putc (બરાબર એક character કહે). એમાંથી પસંદ કરવું એ exam ની પાક્કી સરખામણી છે.
Theory
ઉદ્ઘોષક, છાપ, અને એક ઘંટડી
printf કાર્યક્રમનો ઉદ્ઘોષક છે: ખાલી જગ્યાવાળી script વાંચે છે ("total છે ___") અને દરેક ખાલી જગ્યા તમારા variables માંથી live ભરે છે. puts એક રબરની છાપ છે: પોતાની એક line છાપે છે અને આપોઆપ કાગળ નીચે સરકાવે છે (built-in newline). putchar એક જ ઘંટડી છે: એક ચોખ્ખો રણકાર, એક character, બસ. જુદાં કામ, એક મંચ: screen.
At a glance
4 output statements
| Function | શું print કરે | Newline? |
|---|---|---|
| printf(...) | Text + % થી formatted values | ફક્ત જ્યારે તમે \n લખો |
| puts(str) | એક string | પોતાની \n ઉમેરે, હંમેશાં |
| putchar(ch) | બરાબર એક character | ક્યારેય નહીં |
| putc(ch, stdout) | એક character (file-flavoured) | ક્યારેય નહીં |
Practical
Marksheet, વ્યવસ્થિત સજેલી
#include <stdio.h>
int main() {
int marks = 78;
char grade = 'A';
puts("===== MARKSHEET =====");
printf("Marks : %d\n", marks);
printf("Grade : %c\n", grade);
putchar('*');
putchar('\n');
return 0;
}This example runs in Gri-Learn on the web, where you can edit it and see the output.
Quiz
puts("Hello") અને printf("Hello") વચ્ચે ખરો ફરક શું છે?
- puts, Hello પછી આપોઆપ newline ઉમેરે છે; printf ઉમેરતું નથી
- printf આપોઆપ newline ઉમેરે છે; puts ઉમેરતું નથી
- puts variables print કરી શકે; printf ન કરી શકે
- કોઈ ફરક છે જ નહીં
Show the answer
puts, Hello પછી આપોઆપ newline ઉમેરે છે; printf ઉમેરતું નથી
puts હંમેશાં પોતાની \n ઉમેરે છે: cursor કહ્યા વગર આગલી line પર જાય છે. printf બરાબર એ જ print કરે છે જે તમે લખ્યું, એ જ line પર રહીને, જ્યાં સુધી format string માં \n ન હોય. (અને variables ને % થી format printf જ કરે છે; puts ફક્ત એક સાદી string લે છે.) આ newline વાળો ફરક output-statement નો સૌથી વધુ પુછાતો સવાલ છે.
Think first
Output ની આગાહી કરો
ઉપરના code block ને line by line ચાલો, દરેક function ની newline વાળી ટેવ યાદ રાખતાં. Reveal પહેલાં screen નું બરાબર output લખો.
Show the answer
===== MARKSHEET =====
Marks : 78
Grade : A
*
puts વાળી line જાતે પૂરી થાય છે; દરેક printf પોતાની \n ને લીધે પૂરું થાય છે; star ની line બંધ કરવા બીજા putchar('\n') ની જરૂર પડી, putchar ક્યારેય ઉમેરતું નથી. Newlines ને trace કરો અને predict-the-output ના સવાલ મફત marks બની જાય છે.
Watch out
Marks ક્યાં કપાય છે
Variable print કરવા printf(marks); લખવું: printf નું પહેલું argument એક format string હોવું જોઈએ, એટલે printf("%d", marks);. મળતી values વગરના placeholders (printf("%d %d", marks)) garbage print કરે છે, ગણતરી મેળ ખાવી જોઈએ. અને putchar એક જ character print કરે છે: putchar("Hello") 2 રીતે ખોટું છે (double quotes, 5 characters). નાનો syntax, સહેલા marks, વારંવારનું નુકસાન.
Theory
એક નાનકડી ASCII જાદુગરી
putchar એક character લે છે, પણ યાદ રાખો char ખરેખર શું છે: પોશાક પહેરેલો number. putchar(65) A print કરે છે, putchar(66) B, સીધું તમારી BCA103 વાળી ASCII table માંથી. Exams એને predict-the-output માં ચૂપચાપ ઘૂસાડે છે. આ unit માં એક રહસ્ય બાકી છે: %d, %f, %c અને એમના ભાઈઓ ખરેખર છે શું. હવે પછીનો lesson આખા placeholder પરિવારને decode કરે છે.
Summary
Key takeaways
- printf: % placeholders સાથે formatted output; newline ફક્ત \n થી.
- puts: એક string, સાથે એક આપોઆપ newline, હંમેશાં.
- putchar/putc: બરાબર એક character, ક્યારેય newline નહીં.
- printf ના placeholders ગણતરી અને type માં એના arguments સાથે મેળ ખાવા જોઈએ.
- putchar(65) A print કરે છે: chars પોશાક પહેરેલા ASCII numbers છે.
- ચારેય stdio.h માં રહે છે.
- યાદ રાખવાની યુક્તિ: ઉદ્ઘોષક (printf), છાપ (puts), એકલી ઘંટડી (putchar).