fwrite関数について簡単な質問があります
Posted: 2015年5月30日(土) 19:47
このプログラムで名前を入力した後に、fwrite関数でtxtファイルに出力すると、「名前ヘヘヘヘヘヘヘヘヘヘヘ」のように配列の空いてる部分まで出力されてしまいます。配列の\0で出力を止めたいのですが、どうすればいいのでしょう?
あと、もう一つ質問がありまして、
scanf("%s", test->Name);
の部分で、文字列を入力した際に、エンターを押した後、\0は代入されますよね。
あと\0の名前は文字列終端子であってますか?
あと、もう一つ質問がありまして、
scanf("%s", test->Name);
の部分で、文字列を入力した際に、エンターを押した後、\0は代入されますよね。
あと\0の名前は文字列終端子であってますか?
#include<stdio.h>
#include<stdlib.h>
int main(){
typedef struct{
char Name[100];
int Hp;
int Mp;
} TEST;
TEST* test;
test = (TEST*)malloc(sizeof(TEST));
printf("キャラの名前を入力してください:");
scanf("%s", test->Name);
printf("キャラのHPを入力してください:");
scanf("%d", &test->Hp);
printf("キャラのMPを入力してください:");
scanf("%d", &test->Mp);
FILE *fp = fopen("セーブ.txt", "wb");
fwrite(test, sizeof(TEST), 1, fp);
free(test);
rewind(stdin);
getchar();
return 0;
}