【发布时间】:2013-07-22 21:21:24
【问题描述】:
示例代码:
char cnumb1[2];
NSLog(@"Do you have an account already?(1 for Yes, 0 for no)");
int c;
//Flushes input
while((c = getchar()) != '\n' && c != EOF);
fgets(cnumb1, sizeof cnumb1, stdin);
size_t length = strlen(cnumb1);
if (cnumb1 [length-1] == '\n'){ // In case that the input string has 1 character plus '\n'
cnumb1 [length-1] = '\0';} // Plus '\0', the '\n' isn't added and the if condition is false.
NSString* string = [NSString stringWithUTF8String: cnumb1];
NSLog(@"string:%@", string);
输入“0”(编辑:出于某种原因,我需要按两次回车键),我得到输出“字符串:” 据我所知,标准输入的设置不正确。 另外,我开始时没有刷新线,但这导致了很多问题,因为我以后有更多的 fget,而且标准输入只是初始输入,所以我添加了这些。
为什么输入没有设置为标准输入? 还是完全是另一个问题?
【问题讨论】:
-
char cnumb1[2]; fgets(cnumb1, 3, stdin);- ??? -
哦,这是示例代码中的错误,对不起!我会改变它。它通常不像代码中那样。对不起!
-
如果您接受一些建议:使用
sizeof cnumb1而不是硬编码的尺寸。 -
喜欢 fgets(cnumb1, sizeof cnumb1, stdin); -?
-
是的,就是这样。
标签: objective-c console-application fgets