下面第一次打印printf打印出我的行。
对printf的第二次调用打印出空格。
发生了什么事?
while (getline(&line, &size, config_file) != -1) {
printf("line: %s\n", line);
/* check to see if this line is a comment */
char marker[1];
sscanf(line, "%1s", marker);
printf("line: %s\n", line);
if (marker[0] == '#') {
.
.
答案 0 :(得分:4)
sscanf(line, "%1s", marker);
除了您指定的一个字符外,它还在\0
中存储marker
终结符。它显然是未定义的,但我猜是\0
会覆盖line
。
换句话说,marker
需要至少2个字符宽才能存储一个字符串。