![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
今、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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# c言語 int temp = 0; if(isdigit(arr[i])){ temp=arr[i] 2 2022/03/27 01:44
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
C++でvectorにテキストファイルを読み込む
C言語・C++・C#
-
<unistd.h>をVisualStudioでつかえるようにする
C言語・C++・C#
-
charからLPTSTRへの変換方法
C言語・C++・C#
-
-
4
char*を初期化したいのですが
C言語・C++・C#
-
5
C++における継続行
その他(プログラミング・Web制作)
-
6
C言語でCSVファイルの行数を読み取りたい
C言語・C++・C#
-
7
Debug Assertion Failed?
C言語・C++・C#
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
nullと""、\\0とEOFの違いにつ...
-
C#でstringをポインタとして渡す
-
構造体→文字列→構造体 をする方法
-
C++で入力した文字列から数字を...
-
Cで二次元配列の読み込み
-
C++で文字列の右端から特定の文...
-
プログラム問題・・・
-
TCL言語で文字列検索方法を教え...
-
%dなどの違い
-
Excelシートを固定長のテキスト...
-
アルファベットの出て来た回数
-
数字の入った配列をファイルへ...
-
VB6.0でのバイナリデータの扱い...
-
[C++]WCHARの1文字目しか表示で...
-
C言語 配列の長さの上限
-
関数から配列を返すには?
-
C言語のポインタに直接アドレス...
-
VBAのプログラムで、DIAG = 1# ...
-
init関数の意味
-
セグメントエラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラムによく出てくるst...
-
nullと""、\\0とEOFの違いにつ...
-
TCL言語で文字列検索方法を教え...
-
C#でstringをポインタとして渡す
-
C++で入力した文字列から数字を...
-
%dなどの違い
-
WSH(VBS)でJSONの文字列を読み...
-
16進数を2文字ずつ配列に格納し...
-
シリアル通信で0x00を送信した...
-
_tcscpy_s(wcscpy_s)の第二引数...
-
構造体→文字列→構造体 をする方法
-
VBA-DLLの引数受け渡しについて
-
[C++]WCHARの1文字目しか表示で...
-
数字の入った配列をファイルへ...
-
VB6.0でのバイナリデータの扱い...
-
引用符と二重引用符
-
こんなことって可能なのですか...
-
char型配列の最大要素数
-
sprintf関数について教えて下さ...
-
C言語の課題で困っています;
おすすめ情報