Я пытаюсь создать программу, которая требует сканирования более чем одним словом, и я не знаю, как это сделать с неопределенной длиной. Моим первым портом захода был scanf, однако он сканирует только одно слово (я знаю, что вы можете выполнить scanf("%d %s",temp,temporary);, но я не знаю, сколько слов ему нужно), поэтому я осмотрелся и нашел fgets. Одна проблема с этим заключается в том, что я не могу найти, как заставить его перейти к следующему коду, например
scanf("%99s",temp);
printf("\n%s",temp);
if (strcmp(temp,"edit") == 0) {
editloader();
}
будет запускать editloader(), в то время как:
fgets(temp,99,stdin);
while(fgets(temporary,sizeof(temporary),stdin))
{
sprintf(temp,"%s\n%s",temp,temporary);
}
if (strcmp(temp,"Hi There")==0) {
editloader();
}
не перейдет к коду strcmp() и останется в исходном цикле. Что мне делать вместо этого?
getline
, а затем работать с каждой строкой целиком. - person Basile Starynkevitch   schedule 10.03.2012