0

私は、ユーザーがユーザー名とパスワードを入力し(これは単なる演習であるため、暗号化は気にしません)、年齢とこのデータをファイルに書き込む簡単なコマンドラインツールを作成しています。これは私が持っているコードです:

    char username[40];
    char password[40];
    int age = 0;
    NSString *path = [NSString stringWithFormat:@"%@/Documents/config.txt", NSHomeDirectory()];
    NSFileManager *fileManager = [[NSFileManager alloc]init];

    //Username Input
    NSLog(@"Pick a username (less then 40 letters):");
    scanf("%s", username);
    NSString *usernameString = [[NSString alloc] initWithBytes:username
                                                            length:39 
                                                          encoding:NSUTF8StringEncoding];

    //Password Input
    NSLog(@"Pick a password (less then 40 letters):");
    scanf("%s", password);
    NSString *passwordString = [[NSString alloc] initWithBytes:password
                                                        length:39 
                                                      encoding:NSUTF8StringEncoding];
    //Age Input
    NSLog(@"What's your age?");
    scanf("%i", &age);

    NSString *finalContents = [NSString stringWithFormat:@"%@\n%@\n%i", usernameString, passwordString, age];
    NSData *dataContent = [finalContents dataUsingEncoding:NSUTF8StringEncoding];
    [fileManager createFileAtPath:path contents:dataContent attributes: nil];

作成されたファイルを開くと、次の内容が含まれています。

(null)
(null)
18

ユーザー名とパスワードの両方に40文字未満の文字列を入力し、年齢に18の数字を入力したので、年齢のみが機能しているように見えます。よろしくお願いします。

編集:ファイルの内容は「(null)(null)18」で、間に改行がありますが、私の投稿には表示されません。

4

1 に答える 1

1

を使用してみてくださいstringWithCString:encoding:

于 2012-05-31T21:57:58.710 に答える