मैं इस तरह के एक सी में परिभाषित लिखने की ज़रूरत/C++#define उपयोग/सी ++
#define scanf(fscanf(inf,
आदेश को बदलने के लिए प्रत्येक scanf(
fscanf(inf,
साहित्यिक साथ
लेकिन मैं पता नहीं कैसे ...
धन्यवाद
मैं इस तरह के एक सी में परिभाषित लिखने की ज़रूरत/C++#define उपयोग/सी ++
#define scanf(fscanf(inf,
आदेश को बदलने के लिए प्रत्येक scanf(
fscanf(inf,
साहित्यिक साथ
लेकिन मैं पता नहीं कैसे ...
धन्यवाद
आप एक Variadic macro उपयोग करना चाहते हैं।
आपके मामले में, मुझे विश्वास है कि आप चाहते हैं:
#define scanf(...) fscanf(inf,__VA_ARGS__)
ध्यान दें कि यह पोर्टेबल नहीं है। –
यह काम कर सकता है। –
@ ब्रायन: यह सी ++ 0x ड्राफ्ट में है और जीएनयू, इंटेल और माइक्रोसॉफ्ट द्वारा समर्थित है, इसलिए कम से कम x86 पर मैं इसे अधिकांश प्रयोजनों के लिए पोर्टेबल मानता हूं – Christoph
आप एक कोष्ठक बदल नहीं सकते। आप विजुअल C++ का उपयोग कर रहे हैं, तो आप आप क्या चाहते हैं पूरा करने के लिए एक variadic मैक्रो का उपयोग कर सकते हैं:
#define scanf(format, ...) fscanf(inf, format, __VA_ARGS__)
अन्य compilers एक ऐसी ही सुविधा है, लेकिन मैं उनके साथ परिचित नहीं हूँ।
यह मानक सी 99 है। §6.10.3.1 –
मुझे आश्चर्यचकित रंग। स्पष्टीकरण के लिए धन्यवाद। जहां तक मुझे पता है –
सी 99 मानक। – ShinTakezou
संभवतः जिस तरह से आपने कोशिश की, संभव नहीं है।
आप
#define scanf(S, ...) fscanf(inf, S, __VA_ARGS__)
उदा देखें तरह बातें क्या करना है here
संपादित करें: जीएनयू सीपीपी वैरिएडिक मैक्रोज़ का भी समर्थन करता है; यह VA_ARGS डबल अंडरस्कोर से पहले और डबल अंडरस्कोर के साथ समाप्त हो गया है ... मैं यहाँ मार्कअप बचने अध्ययन करने के लिए है ...
इनलाइन कोड बनाने के लिए बैकटिक्स के साथ आसपास के पाठ। पैराग्राफ के बीच में '__VA_ARGS__' लिखना सबसे अच्छा तरीका है। ;) –
बस fscanf का उपयोग कर अपने सभी कोड लिखते हैं, और इस तरह एक मैक्रो के साथ फ़ाइल नाम को परिभाषित:
#ifdef USE_SCANF
#define SCANF_FILE(file) stdin
#else
#define SCANF_FILE(file) file
#endif
fscanf(SCANF_FILE(blah), "%d", &a);
मैं इस तरह के एक सी ++
नहीं, आप नहीं कर में परिभाषित लिखने के लिए की जरूरत है। आप वास्तव में क्या करना चाहते हैं stdin
रीडायरेक्ट करें।
freopen(inf, "r", stdin);
बस मैक्रोज़ के इस तरह के उपयोग के लिए नहीं कहें। –
@ ब्रायन यह उपयोग से जिज्ञासा से अधिक है ... – Betamoo
सी या सी ++, और क्या कंपाइलर? –