मैं काम नहीं कर सकता कि मेरे कोड में क्या समस्या है। यहाँ मेरी कोड है:संरचना में ठीक से fgets का उपयोग कैसे करें?
#include <stdio.h>
#include <stdlib.h>
#define N 20
typedef struct _dog {
char dogName[N],ownerName[N];
int dogAge;
} Dog;
int main() {
//Dynamic array
int size;
printf("Number of dogs: ");
scanf("%d", &size);
Dog *dog = (Dog*)malloc(sizeof(Dog)*size);
printf("\n");
//Input
int i;
printf("Please provide the data: [dogName][ownerName][dogAge] :\n");
for(i=0;i<size;i++) {
fgets(dog[i].dogName, sizeof(dog[i].dogName), stdin);
fgets(dog[i].ownerName, sizeof(dog[i].ownerName), stdin);
scanf("%d", &dog[i].dogAge);
}
//Output
printf("\nYou provided the following data:\n");
for(i=0;i<size;i++) {
printf("Dog Name: %s\nOwner Name: %s\nDog Age: %d\n", dog[i].dogName, dog[i].ownerName, dog[i].dogAge);
}
free(dog);
return 0;
}
काम बहुत आसान है, आप एक डेटाबेस लेकिन कुत्तों और मालिकों दो या अधिक नाम हो सकता है बनाने के लिए है, तो इसलिए मैं fget उपयोग करने के लिए प्रयास करें। लेकिन उत्पादन भयंकर दिखता है: (और पहले कुत्ता नाम हिस्सा आम तौर पर खाली है)
You provided the following data:
Dog Name:
Owner Name: Doggy 1
Dog Age: 0
Dog Name: Big Dick
Owner Name: 2
Dog Age: 0
मैं this पढ़ा है लेकिन मेरी मदद नहीं की।
इनपुट मैं प्रयोग किया है:
Doggy 1
Big Dick
2
Doggy 2
यह कुत्ता 2. के बाद
[कृपया इस चर्चा को देखें कि 'malloc()' और 'c' में परिवार का रिटर्न मान क्यों न डालें।] (Http://stackoverflow.com/q/605845/2173917)। –
क्या आप अपना इनपुट दिखा सकते हैं, कृपया? – Downvoter
@ कैड जोड़ा गया! लेकिन ऐसा लगता है कि हमें मुख्य समस्या मिली है। – 2b1c