![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
fgetsでcsvファイルを読み込めなくなる!?
Cを使って、csvをfgetsで読み込むプログラムを作っています。
実際に製作し、csvファイルを(A.csvとします)読み込むことができました。
しかしデスクトップ上で
「新規作成」
→「txtファイルを作成」
→「拡張子を.csvにし、csvファイル(B.csv)を作成」
→「Aの中身をコピーし、Bにペースト」
を行い、B.csvを読み込もうとすると、
読み込むことができません(正確には文字化けした、単語が数文字表示される)
これは何が原因なのでしょうか?
ご教授お願いいたします。
No.3ベストアンサー
- 回答日時:
『fgets()で読み込む』ということなので、プログラムで使用している文字コードはShiftJISでしょう。
csvファイルを何を使って編集しているかわかりませんが、
Windows標準のメモ帳で編集してみてはどうですか?
「ファイル」「名前を付けて保存」を選択すると表示されるダイアログボックスに、
[文字コード]を選択する欄が表示されます。
ここで「ANSI」を選択(XPの場合)して保存すれば、ShiftJISで保存されます。
No.2
- 回答日時:
文字コードがUTFなのでBOMと呼ばれるUTFの文字コードをしめすコードがファイルの先頭に記述されているのです。
UTFコードに対応したテキストエディタならBOMの有無に対応しています。
一度、テキストエディタでファイルを開いて、BOMなしで保存するか、文字コードをシフトJISにして保存してみてください。
ご回答ありがとうございます。
あまりこういうことには詳しくなくて。。
具体的にどうすればよいのでしょうか?
何度も質問して申し訳ありません。
No.1
- 回答日時:
どう文字化けしてるのか分からないので何とも言えませんが、
A.csvとB.csvとでは文字コードが違っているのかと……
例えばB.csvがUTF16で保存されていて、プログラムがANSI文字にしか対応していないと文字化けが起こります。また、ASCII文字はUTF16では上位バイトに00が詰められるので、ANSI系の文字列処理では文字列の終端と見なされてしまいます。fgetsも途中で読み込みが終わります。
回答ありがとうございます。
CSVファイル内には
2行*4000列の数字データがあります。
それを読み込むと
ミマ爍ア
と表示され、プログラムがエラーを起こします。
magicalpassさんのおっしゃることが原因で
あるとするならば、どのような対処をすれば
よいのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- XML PHP.laravelについて 1 2023/07/06 15:26
- Access(アクセス) CSVファイルの「0落ち」にVBA 6 2023/02/02 15:27
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- Excel(エクセル) csvファイルをExcel形式で読み込むには 2 2023/07/03 13:09
- Excel(エクセル) csvに別のExcelの文章を差し込む 2 2023/04/01 16:06
- その他(プログラミング・Web制作) Sikulix2.0.5(Jython2.7.3)でcsvを読込WEB検索条件にpasteで文字化け 1 2023/03/31 11:02
- Visual Basic(VBA) VBAで出力したCSVファイルの先頭にカンマを挿入したい 5 2022/10/14 12:20
- その他(プログラミング・Web制作) Pythonで、データファイルと列名ファイルを1つのファイルにしたいです。 1 2023/07/27 20:29
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カンマ区切りのCSVファイルから...
-
バッチでCSVを処理する時、空の...
-
巨大なCSVの加工(指定列のみの...
-
ファイル書き込み
-
Windowsのバッチファイルについ...
-
COBOLでCSVをインプットにして...
-
データ解析ソフトRでのファイル...
-
c#でcsvから指定の1行だけを読...
-
CSVファイル作成
-
csvファイルのデータの一部を取...
-
VBAでcsvファイルを読み込んで...
-
csvファイル 項目数取得
-
VBScriptでcsvファイルの編集は...
-
複数のcsvファイルをExcelに一...
-
マクロから出力されるcsvのダブ...
-
HTMLのリンク先ページの文字コ...
-
複数のCSVファイルのAccessテー...
-
VBS or BATでCSVファイルに入っ...
-
エクセルVBA 大容量CSVファイル...
-
CSV形式での保存時に”文字列...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カンマ区切りのCSVファイルから...
-
csvファイル 項目数取得
-
CSV形式での保存時に”文字列...
-
マクロから出力されるcsvのダブ...
-
csvファイルでの日付設定「yyyy...
-
複数のcsvファイルをExcelに一...
-
バッチでCSVを処理する時、空の...
-
エクセルVBA 大容量CSVファイル...
-
データ解析ソフトRでのファイル...
-
VBAでcsvファイルを読み込んで...
-
csvファイルのデータの一部を取...
-
複数のCSVファイルのAccessテー...
-
CSVファイル作成
-
【C#】パス名で無効な文字
-
csvファイルのデータの間引きを...
-
csvファイルを列数ごとに分割す...
-
エクセル形式のファイルの読み込み
-
【エクセル マクロ】読み込ん...
-
CSVファイルの項目行を削除...
-
c#でcsvから指定の1行だけを読...
おすすめ情報