【发布时间】:2009-11-15 17:18:31
【问题描述】:
我有一个问题,我在循环中构造了一个字符串,该字符串的输出将显示该字符串和一个字符“y”,上面有两个点作为最后一个字符。
那是什么?
我在这个函数中创建字符串:
char get_string(char *buf, int ble, FILE *fp, char del)
{
int i = 0;
int c;
char result;
memset(buf, 0, BUFLEN);
do {
c = fgetc(fp);
if (c == del) {
buf[i] = '\0';
result = c;
break;
} else if(c == '\n') {
buf[i] = '\0';
result = '\n';
break;
} else {
buf[i] = c;
i++;
}
} while (c != EOF);
return result;
}
然后在另一个函数中使用buf和结果如下:
char pair[BUFLEN];
char end;
do {
end = get_string(pair, BUFLEN, fp, ';');
printf("Result: %s\n",pair);
} while (pair != NULL);
上面的最后一次迭代打印出“结果:y”我不知道为什么。
【问题讨论】: