私のCプログラムでfgets
は、データを読み取っていません。以下のコードを参照してください。
#include <stdio.h>
int main()
{
char string[50];
int marks,i,n, limit;
printf("Enter Limit : \n");
scanf("%d", &limit);
FILE *fptr; fptr=(fopen("string.txt","w"));
if(fptr==NULL){
printf("Error!");
return 0;
}
printf("Enter a string : \n");
fgets(string, sizeof(string), stdin);
fwrite(string, 1, sizeof(string), fptr);
fclose(fptr);
return 0;
}
制限に入ると、プログラムは「文字列を入力してください」と表示し、終了します(データを入力する前に)。scanf("%d", &limit);
ステートメントを削除すると、正常に 動作します。getchar();
また、上記のステートメントを追加すると、fgets
正常に機能します。この問題の背後にある理由を知っている人はいますか?