【发布时间】:2016-02-11 17:50:00
【问题描述】:
是否允许使用scanf(" ") 而不使用其他参数来忽略初始空格?
我正在使用getchar() 来读取单词的字符,并且我想忽略单词之前的空格(之后的空格用于检查单词的结尾)。
代码如下,对吗?
char *read_word() {
int size = 2;
int char_count = 0;
char *s;
char ch;
s = mem_alloc(size);
scanf(" ");
while ((ch = getchar()) != EOF) {
if (char_count >= size) {
s = mem_realloc(s, size++);
}
if (ch == ' ' || ch == '\n') {
s[char_count] = '\0';
break;
}
s[char_count++] = ch;
}
return s;
}
【问题讨论】:
-
绝对.....
-
旁白:
mem_realloc(s, size++);-->mem_realloc(s, ++size); -
@raxell 如果出现
EOF,则s[char_count] = '\0';不会出现。 -
@WeatherVane 我听说过答案无效(在代码审查中),但不是……评论无效?如果错误与问题无关,为什么重要?
-
@Insane 是的。评论旨在要求对帖子进行澄清;它们一直过时(并被标记为过时)。