আমি ডেনিস রিচি'র দ্য সি প্রোগ্রামিং ল্যাঙ্গুয়েজ বইটিতে পড়েছি যেটি int
ইওএফ রাখার জন্য একটি ভেরিয়েবলের জন্য অবশ্যই ব্যবহার করতে হবে - এটি পর্যাপ্ত পরিমাণে বড় করতে যাতে এটি ইওফের মান ধরে রাখতে পারে - না char
। তবে নিম্নলিখিত কোডটি সূক্ষ্মভাবে কাজ করে:
#include<stdio.h>
main() {
char c;
c=getchar();
while(c!=EOF) {
putchar(c);
c=getchar();
}
}
যখন আর কোনও ইনপুট না থাকে, তখন getchar
ইওএফ ফেরত দেয়। এবং উপরের প্রোগ্রামে ভেরিয়েবল c
, চরের টাইপ সহ এটি সফলভাবে ধরে রাখতে সক্ষম।
কেন এই কাজ করে? উল্লিখিত বইয়ের ব্যাখ্যা অনুসারে কোডটি কাজ করা উচিত নয়।
0xff
। ফল সংরক্ষণ getchar()
একটি ইন int
সমাধান যে সমস্যা। আপনার প্রশ্নটি মূলত কম.আর.এল.এফ.এফ.কিউ.এ প্রশ্নে 12.1 প্রশ্নের সমান , যা একটি দুর্দান্ত উত্স excellent (এছাড়াও, main()
হওয়া উচিত int main(void)
এবং এটি return 0;
বন্ধ হওয়ার আগে একটি যোগ করা ক্ষতিগ্রস্থ হবে না }
))