यहां एक प्रोग्राम है जिसे मैं सीधे "सी प्रोग्रामिंग भाषा" की धारा 1.9 से चलाने की कोशिश कर रहा हूं।के एंड आर 2 के अध्याय 1 में सबसे लंबी लाइन उदाहरण संकलित करते समय मुझे "गेटलाइन के लिए विरोधाभासी प्रकार" त्रुटि क्यों मिलती है?
#include <stdio.h>
#define MAXLINE 1000
int getline(char line[], int maxline);
void copy(char to[], char from[]);
main()
{
int len;
int max;
char line[MAXLINE];
char longest[MAXLINE];
max = 0;
while ((len = getline(line, MAXLINE)) > 0)
if (len > max) {
max = len;
copy(longest, line);
}
if (max > 0)
printf("%s", longest);
return 0;
}
int getline(char s[], int lim)
{
int c, i;
for (i=0; i<lim-1 && (c=getchar()) !=EOF && c != '\n'; ++i)
s[i] = c;
if (c == '\n') {
s[i] = c;
++i;
}
s[i] = '\0';
return i;
}
void copy(char to[], char from[])
{
int i;
i = 0;
while ((to[i] = from[i]) != '\0')
++i;
}
यहाँ त्रुटि मैं मिलता है जब मैं उबंटू 11.10 का उपयोग कर कार्यक्रम को संकलित करने का प्रयास करें:
cc word.c -o word
word.c:4:5: error: conflicting types for ‘getline’
/usr/include/stdio.h:671:20: note: previous declaration of ‘getline’ was here
word.c:26:5: error: conflicting types for ‘getline’
/usr/include/stdio.h:671:20: note: previous declaration of ‘getline’ was here
make: *** [word] Error 1
बस यकीन है कि यह पुस्तक में प्रिंट के साथ एक समस्या नहीं था बनाने के लिए, मैं संदर्भित पुस्तक (http://users.powernet.co.uk/eton/kandr2/krx1.html) से अध्याय अभ्यास के पीछे जवाबों का यह सेट और जब मैं व्यायाम 18, 1 9, 20 चलाने की कोशिश करता हूं तो मुझे एक ही त्रुटि मिलती है , 21, आदि, उस लिंक से। यह सीखना वाकई मुश्किल है जब मैं प्रोग्राम को चलाने के लिए नहीं चला सकता कि वे आउटपुट कैसे करते हैं। यह समस्या एक प्रोग्राम में वर्ण सरणी और फ़ंक्शन कॉल पेश करते समय शुरू हुई। मैं इस मुद्दे पर किसी भी सलाह की सराहना करता हूं।
इस पर 20 मिनट बर्बाद हो गया। हो सकता है कि –
हाहाहा मुझे भी @ dmtri.com – samrap
** getline() ** ** ** ** मानक लाइब्रेरी फ़ंक्शन ** नहीं है, यह एक एक्सटेंशन है, क्योंकि @Moooeeeep ने गहराई से और यहां भी http: //stackoverflow.com/questions/7376566/can-an-ansi-c-compliant-implementation-include-additional-functions-in-its-stand @Dietrich एपीपी द्वारा। इसलिए, यदि आप आज कोडिंग कर रहे हैं, तो आपको 'getline() 'का उपयोग नहीं करना चाहिए, लेकिन यदि आप उस लाइब्रेरी पर निर्भर करते हैं जो पहले से ही अपने स्वयं-लागू' getline() 'फ़ंक्शन का उपयोग करता है? मुझे लगता है, व्यापक रूप से, @ moooeeeep का जवाब अधिक उपयुक्त है। –