我正在创建一个简单的命令行工具,用户输入用户名和密码(我不关心加密 因为这只是一个练习),他们的年龄和这些数据被写入一个文件。这是我的代码:
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”,中间有换行符,但它们没有显示在我的帖子中。
答案 0 :(得分:1)
尝试使用stringWithCString:encoding:
。