【发布时间】:2010-12-22 08:06:08
【问题描述】:
我正在尝试从缓冲区中提取 char 数组,但在提取第一个 char 数组后停止工作。
char *msg = "1~Message~ILOVEYOU\r\n2~Message~Doyouloveme?\r\n3~Message~OfcourseIdo!Not!\r\n";
char tempbuffer[1024];
char *tbuf;
tbuf = &tempbuffer[0];
/* Start parsing */
while (*msg != '\0') {
while(*msg != '\n') {
while (*msg != '\r') {
*tbuf = *msg;
msg++;
tbuf++;
} /* closing '\r' */
msg++;
tbuf++;
} /* closing '\n' */
*tbuf = '\0';
/* Printout buffer for debugging purposes */
printf("x %s\n", tempbuffer);
/* Clear tempbuffer before starting to parse the buffer again */
memset(tempbuffer, 0, sizeof((char) 1024));
} /* closing '\0' */
return 0;
}
printf 显示 1~Message~ILOVEYOU 并停止工作。 我期待以下输出
1~Message~ILOVEYOU
2~Message~Doyouloveme?
3~Message~OfcourseIdo!NOT!
有什么想法吗?
【问题讨论】:
-
C 只是比汇编程序更简单。大声笑!