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

我为用户名和密码以及年龄的数字 18 输入了一个少于 40 个字符的字符串,因此看来只有年龄有效。先谢谢了。

编辑:该文件的内容为“(null)(null)18”,中间有换行符,但它们没有出现在我的帖子中。

4

1 回答 1

1

尝试使用stringWithCString:encoding:.

于 2012-05-31T21:57:58.710 回答