質問: C言語の以下のプログラムをwindowsのコマンドプロンプトで実行しました。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー #include int main(void){ char ch[40]; char ab[40]; FILE *fp; fp=fopen("rensyu.txt","r"); fscanf(fp,"%s%s",ab,ch); printf("%s\n%s",ab,ch); fclose(fp); return 0; } ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 結果は ・ソasdf abcdefg です。 rensyu.txtには asdf abcdef とだけ書いてあります。 結果の先頭にある・ソはなぜ表示されるのでしょうか? 解答お願いします。 追記 題のfscanfをfprintfと書き間違えていました。 失礼しました。
回答: こんにちは。 恐らく、rensyu.txtがUTF-8のBOM付きファイルだからではないかと思います。 お使いのエディタでBOM無しに設定して上書き保存すれば出てこなくなるだろうと思います。 Windows 10のメモ帳なら、保存ダイアログの右下にある「文字コード(E):」をANSIにして保存すればBOM無しになります。