解析时遇到问题”;文件服务器命令";在C中
命令的格式如下: 命令文件名字节\n文件内容 我在分离ADD、filename和字节数方面没有问题,但我不确定如何获得server命令的其余部分,即文件内容 这就是我解析每个命令的方式。当前要获取文件内容,我将获取最左边的字符*,即“\n”。文件内容char*从不从NULL更改解析时遇到问题”;文件服务器命令";在C中,c,string,parsing,strchr,C,String,Parsing,Strchr,命令的格式如下: 命令文件名字节\n文件内容 我在分离ADD、filename和字节数方面没有问题,但我不确定如何获得server命令的其余部分,即文件内容 这就是我解析每个命令的方式。当前要获取文件内容,我将获取最左边的字符*,即“\n”。文件内容char*从不从NULL更改 command = strtok( message, " \n" ); file = strtok( NULL, " " ); bytes = atoi( strtok( NULL, "\n" ) ); file_con
command = strtok( message, " \n" );
file = strtok( NULL, " " );
bytes = atoi( strtok( NULL, "\n" ) );
file_contents = strchr( message, '\n' );
关于如何获取文件内容有什么建议吗?我会的
command = strtok( message, " \n" );
file = strtok( NULL, " " );
bytestr = strtok( NULL, "\n" );
bytes = atoi( bytestr );
file_contents = bytestr + strlen(bytestr) + 1;
假设
file\u内容
和bytestr
都是char*
,您确定在字节\n
文件内容中嵌入了一个真正的换行符(ASCII 10 0xa),还是仅仅是一个反斜杠
后跟n
?如果它是一个换行符,它将被字节调用使用,导致文件内容=strchr(消息'\n')
指向消息末尾的换行符(如果存在)。再次使用strtok
应该足够file\u contents=strtok(NULL,“\n”)代码>(以换行符或null终止字符结尾(如果不存在换行符)。