में लूप के दौरान अल्पविराम से अलग अभिव्यक्ति में मैंने कभी भी और कथन पहले कभी नहीं देखा।सी
while(printf("> "), fgets(str, 100, stdin), !feof(stdin)) {
..
..
}
मैंने ऑनलाइन पढ़ा है, जबकि लूप के बाहर आने की स्थिति सही है [! Feof (stdin)]। फिर, क्या ऊपर जबकि बयान के उपयोग के रूप
while(!feof(stdin))
{
printf("> ");
fgets(str, 100, stdin);
...
...
}
इसके अलावा करने के लिए विरोध, जबकि बयान एक अभिव्यक्ति लेता है, 1,1,1 सी में एक वैध अभिव्यक्ति है तो?
वास्तव में, लिखित रूप में पाश पंक्ति की प्रक्रिया के बिना समाप्त होगा 'EOF प्राप्त करने से के बजाय एक नई पंक्ति प्राप्त करने से छोड़ने fgets'। इससे लूप एक अंतिम रेखा को अनदेखा कर देता है जो एक नई लाइन में समाप्त नहीं होता है, जो वांछित व्यवहार हो सकता है, लेकिन अधिक संभावना है कि एक बग। –
@ आर .: मुझे http://www.drpaulcarter.com/cs/common-c-errors.php#4.2 से अवलोकन की याद दिलाई गई है: "लेखक ने अभी तक कोई छात्र feof() फ़ंक्शन का उपयोग नहीं किया है सही ढंग से! " –