ファイルから読み取った文字を文字の配列に格納しようとしていますが、後続のすべての文字も格納してしまいます。このコードでは、配列を初期化するための構造体と関数を作成しました。
「Structures.h」より
typedef struct (
int size;
char *elem;
} cvector;
「ユーティリティ.c」より
cvector make_cvector (int size)
{ cvector temp;
temp.size = size;
temp.elem = calloc(size, sizeof(char));
return temp;
}
次に、「ab c」というテキストファイルを読み込もうとしています
本文で、私は次のように述べました:(nPtrはファイルを開くためのポインタです)
cvector NodeID;
NodeID = make_cvector(3);
for(i=0;i<3;i++){
fscanf(nPtr,"%s", &NodeID.elem[i]);
printf("%s ",&NodeID.elem[i]);
}
この結果は " abc " になりますが、このループの直後に別のループを入力しました。
for(i=0;i<3;i++)
printf("%s ", &NodeID.elem[i]);
実際には「a」「b」と「c」を別々に保存したいのに、「abc bc c」になります。初期化またはポインタに問題がある可能性がありますが、オンラインで読み込もうとしても役に立ちませんでした。エラーはどこにありますか?ありがとうございました!