#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
ええ、これは起こっていることです。 'fgets'の代わりに' scanf'を使います。 – AhmadWabbi
scanfの後に 'getchar();'を追加して、stdinに残した改行文字を破棄します。 – Lundin