#include<stdio.h>
#include<malloc.h>
int main()
{
char *string1;
int length;
scanf("%d", &length);
string1 = (char *)malloc(sizeof(char) * length);
printf("\n Enter the First String : ");
fgets(string1, length, stdin);
printf("\n The First String : %s ",string1);
free(string1);
return 0;
}
Может ли кто-нибудь помочь мне по вышеуказанному коду? Я пытаюсь получить длину строки и строки в качестве входных данных. Но я могу ввести только длину строки. После этого он пропускает часть ввода строки.C - Распределение динамической памяти
Это выход я получаю:
sh-4.3$ main
10
Enter the First String :
The First String :
sh-4.3$
Вы написали '10'? 'fgets' будет читать это' '. –
mch
Да, это то, что происходит. Используйте 'scanf' вместо' fgets'. – AhmadWabbi
Добавьте 'getchar();' после scanf, чтобы отбросить новый символ строки, который вы оставили в stdin. – Lundin