
今、hist[256]というint型の配列に数字が入っているとします。
これを、テキストファイルに出力して、
0
242
5654
232
3123
756
・
・
・
こんな感じで、ファイルに出力したいです。
文字としての出力になるのでhist[256]配列を、int型からchar型に変換しないとダメでしょうか?
また、変換するとしたら、char型だと unsigned char にしても 0~256の値までしか1つの配列に保存できませんよね?
もっと大きい数字も入っているので何とかする方法も教えて下さい。
初歩的な質問で申し訳ありませんが、よろしくお願いします。
No.4ベストアンサー
- 回答日時:
fprintf()関数を使えば簡単です。
簡単に言えば、printf()関数のファイル出力版です。
画面ではなく、ファイルに文字列を出力します。
サンプル
------------------------
FILE *fp;
int i;
if((fp = fopen("data.txt", "w")) != NULL){
for(i = 0; i < 256; i++){
if(fprintf(fp, "%d\n", hist[i]) < 0){
//書き込みエラー
break;
}
}
fclose(fp);
}else{
//ファイルオープンエラー
}
------------------------
%d で int型の整数を文字として表示、
\n で改行です。printf()関数と同じですね。
#サンプルはインデントに全角スペースを使っています。
-----------------------------------------------------------
>int型からchar型に変換しないとダメでしょうか?
>また、変換するとしたら、char型だと unsigned char にしても 0~256の値までしか1つの配列に保存できませんよね?
ちょっと勘違いしているようなので、説明しますが・・・
C言語の文字列は、文字の配列です。
char型は1文字を表わします。
文字列は、char型の配列になります。
例えば、整数の 123 を文字列で表現する場合、
文字数は3文字で、終端にヌル文字('\0')が入りますので、
4文字の配列になります。
unsigned char c[] = {'1','2','3','\0'};
一つ一つは文字コード(0~255)ですので、char型で問題ありません。
No.2
- 回答日時:
**.txtのようにファイルに保存する方法ってことでいいのかな?
だとしたら
program.exe >> **.txt
とリダイレクトすればどうでしょうか?
もしくは、
FILE *fp;
fp = fopen("**.txt", "w");
if(fp == NULL){
perror("ファイル処理(open)に失敗");
exit(1); }
for(i=0;i<N;i++)
fprintf(fp, "%f\n", hist[i]);
if( fclose(fp) != 0 ){
perror("ファイル処理(close)に失敗");
exit(1); }
のようにファイルに出力されるようにコードを書くとか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字コードによる表記
-
アルファベットの出て来た回数
-
sprintf関数での文字列変換につ...
-
%dなどの違い
-
WSH(VBS)でJSONの文字列を読み...
-
TCL言語で文字列検索方法を教え...
-
シリアル通信で0x00を送信した...
-
int型での文字列の扱いについて
-
配列を使わずに、変数名を動的...
-
C# DataGridView のヘッダーセ...
-
Integer変数をカラにしたいので...
-
Excelですべての組合せ(重複組...
-
ExcelVBAでのkernel32(64bit)
-
isalpha()関数について
-
Run-Time Check Failure #3とい...
-
allocってなんですか?
-
define で 配列
-
CStringからchar*への型変換に...
-
C言語 配列の長さの上限
-
「#undef」と「#define」の使い...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
nullと""、\\0とEOFの違いにつ...
-
C#でstringをポインタとして渡す
-
TCL言語で文字列検索方法を教え...
-
シリアル通信で0x00を送信した...
-
C++で入力した文字列から数字を...
-
16進数を2文字ずつ配列に格納し...
-
プログラムによく出てくるst...
-
WSH(VBS)でJSONの文字列を読み...
-
_tcscpy_s(wcscpy_s)の第二引数...
-
%dなどの違い
-
VBA-DLLの引数受け渡しについて
-
C言語の問題です。
-
c#で他のアプリの文字入力フォ...
-
構造体→文字列→構造体 をする方法
-
int型での文字列の扱いについて
-
[C++]WCHARの1文字目しか表示で...
-
char a[]="thank you for comin...
-
VB6.0でのバイナリデータの扱い...
-
Excelシートを固定長のテキスト...
-
C#のGUIからサーバー側のPHPへ...
おすすめ情報