Я хотел спросить, есть ли способ ввода пустых строк в scanf, Я использую этот [^ \ n], чтобы ввести то, что всегда исключает новую строку. Это правильно, но создает много проблем как это, кажется, находится в входной buffer.what это лучший способ ввода строки .both получает и fgets создаём много проблем,Входная строка через scanf
while(strcmp(buf,"quit"))
{
scanf("%*[^\n]",buf);
n=send(connected,buf,strlen(buf),0);
if(n<0)
{
perror("send");
printf("error sending");
exit(1);
}
//printf("server has send\n");
n=recv(connected,buf,100,0);
if(n<0)
{
perror("recv");
printf("error recieving");
exit(1);
}
//printf("waiting to recieve something\n");
buf[n]='\0';
printf("client:%s\n",buf);
}
это создает бесконечный цикл, то же самое повторяется снова и снова ,
offset = DEFAULT_BUFFER * итерация - итерация; , если эта строка будет просто: offset = DEFAULT_BUFFER * итерация – mawia
C переведет символ '\ n' в «% * [^ \ n]» на литеральную новую строку. Чтобы он работал лучше, вам нужно сменить косую черту: «% * [^ \\ n]». Вы можете объяснить приведенные выше строки .how% * [^ \\ n] будет работать лучше, чем% * [^ \\ n]? – mawia
вы упомянули, что код будет тратить определенное количество байтов на каждую итерацию. Я не вижу таких потерь. Можете ли вы указать, где такой вид? – mawia