В моем коде:
scanf("%s", &text);
printf("%s\n", text);
Вход:
hi how are you
Выход:
hi
и нет
hi how are you
что я могу сделать, чтобы исправить это?
В моем коде:
scanf("%s", &text);
printf("%s\n", text);
Вход:
hi how are you
Выход:
hi
и нет
hi how are you
что я могу сделать, чтобы исправить это?
Посмотрите на fgets.
Функция fgets() считывает максимум на один символ меньше числа, указанного параметром n, из заданного потока и сохраняет их в строке s. Чтение останавливается, когда найден символ новой строки, конец файла или ошибка. Новая строка, если она есть, сохраняется. Если прочитаны какие-либо символы и ошибки нет, в конец строки добавляется символ `\0'.
Я полагаю, вы ищете
ssize_t getline(char **lineptr, size_t *n, FILE *stream);
Который будет читаться до разделителя новой строки. Или если вы используете какой-то другой разделитель
ssize_t getdelim(char **lineptr, size_t *n, int delim, FILE *stream);
Используйте fgets, чтобы получить информацию:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
char text[80];
fgets(text, sizeof(text), stdin);
printf("%s\n", text);
}