как работает fgets внутри?

Ну, это базовый вопрос, но я, кажется, достаточно сбит с толку.

#include<stdio.h>
int main()
{
char a[100];
printf("Enter a string\n");
scanf("%s",a);
}

По сути, это то, чего я хочу достичь. Если я ввожу строку

James Bond

, я хочу, чтобы она сохранялась в массиве a. Но проблема в том, что между ними есть пробел, сохраняется только слово James. Итак, как я могу решить эту проблему.

ОБНОВЛЕНИЕ
После ответов, приведенных ниже, я понимаю, что fgets () будет лучшим выбором. Я хочу знать внутреннюю работу fgets: почему он может хранить строку с пробелом, тогда как scanf не может делать то же самое.

5
задан Registered User 22 June 2011 в 08:05
поделиться