2010-10-01 15 views
5

मुझे पता है कि मुझे प्रिंट करना होगा, मैं p->real का उपयोग करता हूं और इसी तरह, लेकिन जब मैं scanf का उपयोग कर संख्या पढ़ रहा हूं तो मुझे क्या लिखना चाहिए?पॉइंटर्स का उपयोग करके मैं संरचना में मूल्य कैसे पढ़ूं?

#include <stdio.h> 

typedef struct { 
    int real; 
    int imaginary; 
} complex; 

void read(complex*); 

void main() { 
    complex c; 
    read(&c); 
}  

void read(complex* p){ 
    /*what to write in scanf*/ 
} 
+0

बस एक सवाल: क्या आप सुनिश्चित करें कि आपके sturcture सदस्यों 'int', नहीं' float' या होना चाहिए रहे हैं 'double'? – Benoit

+1

इसलिए मैंने आपके कोड के स्वरूपण को ठीक किया और इंडेंटेशन बदल दिया ताकि यह पठनीय हो। यह लोगों के लिए वास्तव में सहायक है यदि आप अपना मूल प्रश्न पोस्ट करते समय ऐसा करते हैं ... –

+0

@ चिह्न- मैं कोड कैसे प्रारूपित करूं? कृप्या सहायता करे। – Kraken

उत्तर

10

आप लिख सकते हैं:

scanf("%d %d", &p->real, &p->imaginary); 

लेकिन उस प्रारूप में जो संख्या में आ पर निर्भर है।

+4

मैं शायद स्पष्टता के लिए 'और (पी-> असली)' कहूंगा। –

4

scanfprintf है, जो केवल मूल्य की आवश्यकता के विपरीत, स्मृति स्थान आप में परिणाम संग्रहीत करना चाहते हैं की पता पारित करने के लिए आवश्यक है कि आप (यह कम परवाह नहीं कर सका जहां मूल्य रहता है)। एक का पता इस मामले में पता मैं निर्दिष्ट में एक पूर्णांक पढ़ा,:

int a; 
scanf("%d", &a); 

अर्थ: सी में एक चर के पते पाने के लिए आपको & ऑपरेटर का उपयोग करें। एक ही है, struct सदस्यों के लिए चला जाता है कि क्या struct ही ढेर या ढेर, सूचक द्वारा पहुँचा, आदि पर रहता है की परवाह किए बिना:

struct some_struct* pointer = ........; 
scanf("%d", &pointer->member); 

और वह सूचक के पते में एक पूर्णांक पढ़ता था प्लस की भरपाई संरचना में सदस्य। बाद कोड

-2

उपयोग:

scanf("%d",&pointer->variable); 
+0

किसी प्रश्न का उत्तर देने में कुछ भी गलत नहीं है, लेकिन यह उत्तर संरक्षण के लिए कुछ भी नहीं जोड़ता है, यह दो साल पहले पिछले दो का डुप्लिकेट है। पहले से ही स्वीकृत उत्तरों को रोकने के बजाय प्रश्नों का उत्तर देते समय कृपया कुछ अतिरिक्त जानकारी जोड़ें। – Mike

संबंधित मुद्दे