2013-08-08 3 views
0

Ok donc je suis tout nouveau à l'objectif C et pour m'entraîner un peu j'ai fait un petit petit programme. Les programmes supposent comprendre combien de jours êtes-vous. J'ai cette erreur que je ne peux pas comprendre. Heres le code:Objectif C Aide (débutant)

Age.h

#import <Foundation/Foundation.h> 

@interface Age : NSObject { 
int age; 
int age365; 
int lyear; 
} 
-(void) howOld; 


@end 

Age.m

#import "Age.h" 

@implementation Age 


-(void) howOld{ 
NSLog(@"How old are you currently?\n"); 
scanf("age"); 
NSLog(@"You entered %i", age); 



} 


@end 

Month.h

#import "Age.h" 

@interface Month : Age{ 
int month; 
} 

-(void) whatMonth; 

@end 

Month.m

#import "Month.h" 

@implementation Month 

-(void) whatMonth{ 

NSLog(@"What month is it? (Number)\n"); 
scanf("month"); 
NSLog(@"you entered %i", month); 



} 


@end 

Day.h

#import "Month.h" 

@interface Day : Month{ 
int day; 
} 
-(void) whatDay; 
-(void) printAge; 
@end 

Day.m

#import "Day.h" 

@implementation Day 

-(void) whatDay{ 
NSLog(@"What day is it? (Number)"); 
scanf("day"); 
NSLog(@"You entered %i", day); 
day = month*30+day+age365; 

} 

-(void) printAge{ 
age365 = age * 365; 
lyear = age/4; 
age = lyear + age365; 
NSLog(@"You are %i days old", day); 
} 

@end 

main.m

#import <Foundation/Foundation.h> 
#import "Age.h" 
#import "Month.h" 
#import "Day.h" 

int main(int argc, const char * argv[]) 
{ 

    @autoreleasepool { 

    Age *a = [[Age alloc]init]; 

    [a howOld]; 


    Month *m = [[Month alloc]init]; 

    [m whatMonth]; 

    Day *d = [[Day alloc]init]; 

    [d whatDay]; 
    [d printAge]; 


} 
return 0; 
} 

Sortie * ERREUR HERES *

**Lets me type**(
2013-08-08 17:27:26.121 HMDAI[10989:303] How old are you currently? 
3) 

**Does by itself**(
2013-08-08 17:27:43.854 HMDAI[10989:303] You entered 0 
2013-08-08 17:27:43.854 HMDAI[10989:303] What month is it? (Number) 
2013-08-08 17:27:43.855 HMDAI[10989:303] you entered 0 
2013-08-08 17:27:43.855 HMDAI[10989:303] What day is it? (Number) 
2013-08-08 17:27:43.855 HMDAI[10989:303] You entered 0 
2013-08-08 17:27:43.856 HMDAI[10989:303] You are 0 days old 
) 

Qu'est-ce que je fait de mal? J'ai utilisé XCode si cela aide.

+3

Vous avez oublié de nous indiquer l'erreur. Vous pourriez également nous aider un peu en nous disant où l'erreur s'est produite. –

+1

Beaucoup d'informations pour résoudre la question; vous avez juste besoin d'être un coude unix pour connaître la réponse. Heureusement, je n'ai pas rasé cette semaine ... – bbum

Répondre

1

scanf signifie analyse de la chaîne formatée à partir de l'entrée standard. La fonction prend une chaîne de format et un ensemble de pointeurs pour analyser des choses dans.

Votre code échoue car vous n'indiquez pas scanf() qu'il doit numériser un nombre.

L'article wikipedia est en fait très instructif: http://en.wikipedia.org/wiki/Scanf_format_string

(Et beaucoup moins dense que la page de manuel typique qui nous vivons et mourons neckbeards par).


Notez que si votre objectif est d'apprendre ObjC aux fins de Mac OS X ou iOS programmation, vous avez choisi un endroit bien, mais étrange de commencer. Vous seriez mieux de commencer par l'un des nombreux comment écrire des applications tutoriels.

+0

Rien de mal à commencer où vous êtes, juste que l'interactivité basée sur les E/S standard est très éloignée de la programmation de l'application iOS/OS X. Il y a des tonnes de tutoriels là-bas. Lequel choisir? Je me pencherais sur celui qui commence plus au niveau de base de l'application.Laquelle? Aucune idée - il y a des décennies que j'ai sérieusement révisé ou utilisé de tels tutoriels. J'ai fini sur ce site quand j'ai exploré Cocos2d il y a quelques temps (http://www.raywenderlich.com/tutorials). – bbum