初投稿で不慣れな点も多いと思います。プログラミングの超初心者なので優しく答えていただけるととてもありがたいです。今回やろうとしたのは文章をn-gramで解析してまとめあげて生成したものをテキストファイルに保存してマルコフ連鎖の仕組みによって新たな文章生成をしようというプログラムです。実は、以下1のプログラムで2のような内容のテキストファイルを読み取って文章を作ろうとしているのですが、何度やっても表示されるのは『?????????』で、うまくいきません。試したことは(1)様々な文字コードに変更して実行。UTF-8など)(2)プログラム言語のミスがないかの確認。ファイル3gram.txtがありません。startch[MAXLINE];srand(65535);n=read2gram(db2gram);printf("さくら:メッセージをどうぞ。n);printf("あなた:");}printf("さくら:バイバーイ。0;}2ファイル名:3gram.txt134ネッド127した。118ように117かった111ていた111あった103って、95だった94してい92自動車92いた。90火星人88のよう88だろう87んだ。文字コードの変更というのはターミナルの設定ですか、それともテキストファイルの文字コードですか?とりあえず、1文字が2byteという前提で計算しているようなのでUTF-8ではまず動かないと思いますが。以下のページでもみて、各文字コードのバイト数の違いを確認してください。文字数カウント・チェックhttp://www.word-tool.net/app/counter.php追記:たとえば「自動車」で確認すると、UTF-8は9バイトになりますね。これだけでも2バイト固定でやるのは間違ってるとわかるよね?添付ファイルすべて3文字だが、6バイトなのはEUC-JPとshift-jis。ミクプラは自由にリンクできます。