Считать строку с окна ввода и записать в переменную - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Считываю строку scanf - читает только до пробела. Не подходит. Нашел функцию gets - компилятор выдал ошибку: функцию опасна и использоваться не может. Нашел еще один пример:
while((*p++=getchar()) != '\n');
*p='\0'; /* добавляем символ конца строки */
Неужели все так сложно?? Мне надо просто сделать так, чтобы пользователь ввел строку(с пробелами) и после нажатия Enter строка записалась в строковую переменную buffer[200](переполнение буфера не учитывать)... Помогайте))

Решение задачи: «Считать строку с окна ввода и записать в переменную»

textual
Листинг программы
/*getline: читает строку в s, возвращает длину*/
int getline(char s[], int lim)
{
   int c, i;
   
   for (i = 0; i < lim - 1 && (c = getchar()) ! = EOF && c != '\n'; ++i)
      s[i] = c;
   if (c == '\n')
   {
      s[i] = c;
      ++i;
   }
   s[i] = '\0';
   return i;
}

Объяснение кода листинга программы

В данном коде реализована функция getline, которая предназначена для чтения строки с окна ввода и записи её в переменную. Вот список действий, которые происходят в коде:

  1. В первой строке объявлены две переменные: c и i. Первая из них будет использоваться для считывания символа из окна ввода, а вторая — для подсчёта количества считанных символов.
  2. Далее, с помощью цикла for, происходит считывание символов из окна ввода и запись их в строку s. Действия продолжаются до тех пор, пока не будет достигнут конец строки (c = '\n') или не будет достигнут лимит длины строки (i < lim — 1).
  3. Если в процессе считывания символов встретился символ новой строки ('\n'), то он также записывается в строку s, а переменная i увеличивается на единицу. Это необходимо для корректного определения длины строки.
  4. В конце цикла, после достижения конца строки или достижения лимита длины, в строку s добавляется символ-маркер конца строки ('\0').
  5. После завершения цикла, функция возвращает значение переменной i, которая и является длиной считанной строки.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5
Похожие ответы