Считать строку с окна ввода и записать в переменную - C (СИ)
Формулировка задачи:
Считываю строку scanf - читает только до пробела. Не подходит. Нашел функцию gets - компилятор выдал ошибку: функцию опасна и использоваться не может. Нашел еще один пример:
Неужели все так сложно??
Мне надо просто сделать так, чтобы пользователь ввел строку(с пробелами) и после нажатия Enter строка записалась в строковую переменную buffer[200](переполнение буфера не учитывать)...
Помогайте))
while((*p++=getchar()) != '\n'); *p='\0'; /* добавляем символ конца строки */
Решение задачи: «Считать строку с окна ввода и записать в переменную»
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, которая предназначена для чтения строки с окна ввода и записи её в переменную. Вот список действий, которые происходят в коде:
- В первой строке объявлены две переменные: c и i. Первая из них будет использоваться для считывания символа из окна ввода, а вторая — для подсчёта количества считанных символов.
- Далее, с помощью цикла for, происходит считывание символов из окна ввода и запись их в строку s. Действия продолжаются до тех пор, пока не будет достигнут конец строки (c = '\n') или не будет достигнут лимит длины строки (i < lim — 1).
- Если в процессе считывания символов встретился символ новой строки ('\n'), то он также записывается в строку s, а переменная i увеличивается на единицу. Это необходимо для корректного определения длины строки.
- В конце цикла, после достижения конца строки или достижения лимита длины, в строку s добавляется символ-маркер конца строки ('\0').
- После завершения цикла, функция возвращает значение переменной i, которая и является длиной считанной строки.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д