2017-02-18 14 views
0

Я начинаю начинать с программирования, я начинаю с языка C. В настоящее время я использую Программу «Начало программирования» с книгой «С для чайников» Дана Гукинаfgets() разбивает строку на 2 строки

При выполнении упражнения с помощью fgets() произошло следующее.

Это мой код

#include <stdio.h> 

int main() 
{ 
    char name[10]; 

    printf("Who are you? "); 
    fgets(name,10,stdin); 
    printf("Glad to meet you, %s.\n",name); 

    return(0); 
} 

Ожидаемый результат должен быть именем с полной остановкой в ​​конце, и то, что происходит в том, что полная остановка переносится на следующую строку, как показано ниже.

enter image description here

Я использую блоки кода IDE на Unbuntu

+2

[человек fgets] (https://linux.die.net/man/3/fgets) : «Если прочитана новая строка, она сохраняется в буфере». – kaylum

+0

Просто удалите новую строку из 'fgets'? – RoadRunner

+0

Пожалуйста, не отправляйте изображения для простого вывода текста - включите вывод текста в вопрос. Рассматривайте это как код. –

ответ

0

Вы можете использовать strtok(name, "\n")

+1

Это не сработает, если пользователь набрал более 8 символов перед нажатием клавиши ввода или нажатием Ctrl-D. – alk