No.1ベストアンサー
- 回答日時:
テキストファイルを新規作成モードでオープンしていると思いますが、オープンモードに「テキスト属性」を付けてありますか?
fp = fopen(filename,"w");
を
fp = fopen(filename,"wt");
にしてみましょう。
MS-DOS、WINDOWSの世界では、改行は「CR文字+LF文字」の2文字が連続した時のみ、改行と認識されます。
ところが、C言語、C言語が開発されたunix系の世界では、改行は「¥n」1文字のみです。
この違いを吸収する為、ファイルのオープンモードに「バイナリ」「テキスト」の属性が設けられ、Cライブラリ関数が「テキストモードの時は、見えないところでコッソリと『¥n』1文字を『CR+LF』2文字にしてファイルに書き出し、『CR+LF』2文字を『¥n』1文字にしてファイルから読み込み」と言う事をして、unix系の改行とDOS系の改行を同じように扱えるようにしています。
つまり「unixで動いてたプログラムのfopenの属性に"t"を足すだけでDOSで動くようにした」と言う事なのです。
逆に言うと「fopenの属性に"t"を付け忘れるとDOSで動かない」と言う訳。
No.2
- 回答日時:
コンパイラの名前と作ったプログラムはどんなものでしょうか?下記のものなら多分動くと思います。
VC++6で試験しました。-- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< --
#include <windows.h>
#include <stdio.h>
#include <errno.h>
int main(void)
{
FILE *fo;
HINSTANCE ret;
if ((fo = fopen("test.txt", "wt")) == NULL) {
fprintf(stderr, "Can't open test.txt");
return(errno);
}
fprintf(fo, "This is test.\nIs it all right?\n");
fclose(fo);
ret = ShellExecute(NULL, "open", "notepad.exe", "test.txt", NULL, SW_SHOW);
return 0;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) widows11のメモ帳でExcelのTXTファイルを開きたい 6 2022/08/23 17:09
- その他(セキュリティ) これはDos攻撃になりますか? 1 2022/06/30 09:46
- フリーソフト AutoHotKeyは別の独立したファイルで 動作させる方法はないのでしょうか 1 2022/09/04 13:14
- ノートパソコン 「データエラー(CRCエラー)」対応に付いて 15 2022/12/08 09:01
- その他(プログラミング・Web制作) マウスオーバー→ホイール回転でスクロールできない 2 2022/10/31 10:06
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Android(アンドロイド) Simカードをなくしてしまいました。元になるスマホが、すでに契約が終わっていて、wifiのある場所の 2 2022/08/01 15:10
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Windows 8 メモ帳による文字コード変換 2 2022/09/01 18:38
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイル内のデータを1行削除...
-
fgetsで2行目から文字化け
-
バイナリファイルをテキストフ...
-
ファイルサイズ指定し、ファイ...
-
C言語の質問です。クイズをテ...
-
VBSで指定行に挿入
-
ファイルオープンの関数につい...
-
0バイトファイルの作成
-
freadとfwrite
-
巨大なテキストファイル(可変...
-
c言語 2つのファイルを行ご...
-
fopen(書き込みモード)でファイ...
-
どんなプログラムを書いても指...
-
C言語初心者の質問失礼します。
-
バッファとは何ですか
-
フルパスから最後のディレクト...
-
FTPでputすると空ファイルが出...
-
windows.hがincludeされない
-
OLE又はDDEを使うVISUAL BESIC...
-
VB.NETで他のプロジェクトで作...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内のデータを1行削除...
-
バイナリファイルをテキストフ...
-
VBSで指定行に挿入
-
fgetsで2行目から文字化け
-
テキストファイルの行数を取得...
-
ファイルサイズ指定し、ファイ...
-
巨大なテキストファイル(可変...
-
【VB.Net】バイト型配列に読み...
-
fopenで開いたファイルのサイズ...
-
改行までの一文字ずつのファイ...
-
freadとfwrite
-
c言語 2つのファイルを行ご...
-
0バイトファイルの作成
-
fopen(書き込みモード)でファイ...
-
テキストファイルの先頭への文...
-
テキストファイルの文字列の削除
-
C言語での採番について
-
VS2010 MFC CStdioFileについて
-
続・EOF判定されない
-
C言語での改行コードの扱いにつ...
おすすめ情報