構造体の一部の変数をファイルに出力しようとすると、セグメンテーション違反が発生します。最初にコードを書いたとき、最後に表示されるセグメンテーション違反を除いて、結果を画面にうまく出力できました
ただし、ファイルに出力するようにコードを変更すると、ファイルが作成されますが、ファイルは空で、segmentation fault
代わりに画面に出力されます。
何かアドバイス?
/* all is an array of struct CASE,
artall is an array of struct ARTCOUNT,
pLast is last element in all */
void printArtCount (CASE* all, ARTCOUNT* artAll, CASE* pLast)
{
ARTCOUNT* artWalker = artAll;
CASE* walker;
char input[51];
FILE* spOut;
printf("File name for artist count output: ");
scanf("%50s", input);
spOut = fopen(input, "w");
while(artWalker->name)
{
fprintf(spOut, "%d ", artWalker->count);
fprintf(spOut, "%s\n", artWalker->name);
for(walker = all; walker <= pLast; walker++)
{
if (strcmp(walker->name, artWalker->name) == 0)
fputs(walker->art, spOut);
}
artWalker++;
}
return;
}
編集: セグメンテーション エラーが表示されないようにコードを修正しました。すべてが機能するようになりました。
ありがとう。