• ベストアンサー

C++ Builderでファイル出力したい。

次のような char test_bin[60]; //name strcpy((char *)tmp_bin,memo6.c_str()); for(int j=0;j<32;j++) { test_bin[j] = tmp_bin[j]; } ここで得たtest_binのデータをファイル出力したいのですが、C++ Builderでファイル出力する方法を教えていただけないでしょうか? どうぞ、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

fopen とか使えばいいじゃん.

diy_sunny
質問者

お礼

回答いただきありがとうございます。fopenというのがあるんですね。ファイル出力できました! 助かります。

その他の回答 (4)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.5

本題ではないけど strcpy((char *)tmp_bin,memo6.c_str()); for(int j=0;j<32;j++) { test_bin[j] = tmp_bin[j]; } の部分, もっとまともに書けないものだろうか.

diy_sunny
質問者

お礼

回答頂きありがとうございます。自分の知識があまりにもなさすぎてこのような書き方した思いつきませんでしたw まともな書き方というのを教えていただけると大変たすかります。

  • wormhole
  • ベストアンサー率28% (1619/5653)
回答No.4

C++の入門書など読んでません調べる気もありません。 ライブラリのマニュアルなど読んでません調べる気もありません。 みたいな質問ばかりしていると回答付かなくなっちゃいますよ。 C++に限らずですが。

diy_sunny
質問者

お礼

回答頂きありがとうございます。私の情報への到達力とか理解力とかなさすぎなので大変ご迷惑をおかけしております。もしよければお付き合いよろしくお願いいたします。

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.3

「C++ Builder ファイル出力」で検索すればそれなりに見つかるでしょう。 http://yunix.info/BCBHelp/ReadWrite_StreamNLetter_c++.html http://yunix.info/BCBHelp/ReadWrite_StreamNLetter_bcb.html http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1412267694 などなど。 あとはリファレンスマニュアルとか参照すればよいのでは? というか…せっかくインターネットにアクセスできるんですから少しは自分で検索してみてはどうでしょうか? 検索して見つけた内容で試して結果を確認する方が、ココで回答付くのを待っているよりは早いと思いますけどどうなんでしょう? # 上記のページとか見つけるのに1日掛かるなら仕方ないですけどね。

diy_sunny
質問者

お礼

回答頂きありがとうございます。いろいろなサイト教えていただき大変助かります。 これらのサイトとか自分の探し方が悪いのか1日がかりなんですよ。なので聞いたほうが早いなという感じで質問させていただいております。 今後ともよろしくお願いいたします。

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

C++ Builderだろうが、G++だろうが、Visual C++だろうが、標準ライブラリは同等のものが用意されているので、それを使えばいいだけでは?

diy_sunny
質問者

お礼

回答いただきありがとうございます。fopenがどの言語でもつかえるので、いろいろとサイトでみれて助かりました。

関連するQ&A

  • JISコードでファイル出力したい。

    大変お世話になっております。 memo6というstringに”前前前前前前前前”という文字を入れて、それをtest_binにバイトで入れてそれをfopenでバイナリファイルを出力しました。 作成されたバイナリファイルを見てみると”91 4F 91 4F 91 4F 91 4F 91 4F....”とshift jisコードで出力されているのですが、これを”4D 52 4D 52 4D 52 4D 52 4D 52 4D 52....”のjisコードで出力する方法をご教授いただきますようお願いいたします。 char test_bin[60]; //name strcpy((char *)tmp_bin,memo6.c_str()); for(int j=0;j<32;j++) { test_bin[j] = tmp_bin[j]; }

  • C++ Builderで文字列をバイトにする方法

    C++ Builderでプログラミングをやっているのですが、 String memo1 = "あいうえお"; という文字列を unsigned char test_bin[1000]; バイトで宣言した配列に test_bin[0] = memo1の1バイト目; test_bin[0] = memo1の2バイト目; test_bin[0] = memo1の3バイト目; test_bin[0] = memo1の4バイト目; test_bin[0] = memo1の5バイト目; このように、文字列データのバイト数値を数値変数に代入させることはできますでしょうか? どうぞ、ご教授の程よろしくお願い致します。

  • cプログラミングについて

    以下はsample.txtというファイルを読み込み、辞書順に並べるプログラミングですが、どう正しく 直したらよいかわかりません。間違っている場所を指摘していただけたらと思います。 (間違えだらけで申し訳ありません) #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAXLINE 500 void mysort(char *word[MAXLINE]) { int i,j; char *tmp; for(i=0;;i++){ for(j=i+1;; j++){ if(strcmp(word[j],word[i])==1){ tmp=word[i]; word[i]=word[j]; word[j]=tmp; } } } } int main(void) { int i; FILE *fp; char str[MAXLINE]; fp= fopen("sample.txt", "r"); if (fp == NULL) { printf("fopen error\n"); exit(1); } while(( fgets( str, MAXLINE, fp )) != NULL) mysort(str); for(i=0;; i++) printf("%s\n", str[i]); return 0; }

  • C言語 シンプルソート

    C言語始めて1年の初心者です。 #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAXSIZE 10000 void swapData(char *x, char *y); void simpleSort(char data[], int first, int last); int main(int argc, char *argv[]) { int data[MAXSIZE][300]; int i, j, count; FILE *fp; if(argc != 2) { fprintf(stderr, "Usage: %s <filename>\n", argv[0]); exit(0); } if ((fp = fopen(argv[1], "r")) == NULL) { fprintf(stderr, "File %s is not found.\n", argv[1]); exit(0); } for(i = 0; i < MAXSIZE; i++) { if (fscanf(fp,"%s", &data[i]) == EOF) break; } simpleSort(data[], 0, i - 1); for(j = 0; j < i; j++) printf("%s\n", data[j]); } void swapData(char *x, char *y){ char tmp[300]; strcpy(tmp, x); strcpy(x, y); strcpy(y, tmp); } void simpleSort(char data[], int first, int last) { int i, j; for(i = first; i < last; i++){ for(j = i+1; j <= last; j++){ if(strcmp(&data[i], &data[j]) > 0) swapData(&data[i], &data[j]); } } } 読み込んだ文字データをシンプルソートするプログラムなんですが、コンパイルできません。 simpleSortの部分がおかしいみたいなんですが、見直しても先入観からか間違いを見つけられません・・・・ どなたか間違いを指摘していただけたら助かります。

  • fpus:ファイル操作

    Cを勉強している初心者です。 このソースはコンパイルは通るのですが、 エラーがでてしまいます。 いろいろと調べてみたりもしたのですが わかりませんでした。 なぜなのでしょうか? #include <stdio.h> #include <string.h> struct student{ char name[20]; }; int main(void) { struct student s[1]; int i; int j = 1; FILE *fp; strcpy(s[0].name,"taro"); strcpy(s[1].name,"jiro"); if((fp = fopen("test.txt","w+")) == NULL) { printf("ファイルを開けませんでした\n"); return (-1); } for(i=0;i<=j;i++) { fputs(s[i].name,fp); } fclose(fp); return (0); }

  • fputs:ファイル操作

    Cを勉強している初心者です。 このソースはコンパイルは通るのですが、 エラーがでてしまいます。 いろいろと調べてみたりもしたのですが わかりませんでした。 なぜなのでしょうか? #include <stdio.h> #include <string.h> struct student{ char name[20]; }; int main(void) { struct student s[1]; int i; int j = 1; FILE *fp; strcpy(s[0].name,"taro"); strcpy(s[1].name,"jiro"); if((fp = fopen("test.txt","w+")) == NULL) { printf("ファイルを開けませんでした\n"); return (-1); } for(i=0;i<=j;i++) { fputs(s[i].name,fp); } fclose(fp); return (0); }

  • name[3] = seq + '0';の意味

    オライリーC実践プログラミングのP203、例13-11の例で質問です。 このプログラムでは一時的なファイル名を返す関数、tmp_nameがあるのですが このプログラム中の以下の行がよく分かりません。 name[3] = sequence + '0'; 直感的にsequenceだけでよさそうな気がするのですが以下のように書き直すと 出力結果にsequenceの数字がでずただ"tmp"と出力されるだけでした。 name[3] = sequence; char型にint型を使うための手段なのでしょうか? 下記にプログラム全体を載せておきます。よろしくお願いします。 #include <stdio.h> #include <string.h> char *tmp_name(void) { static char name[30]; static int sequence = 0; ++sequence; strcpy(name, "tmp"); name[3] = sequence + '0'; name[4] = '\0'; return (name); } int main() { char *tmp_name(void); printf("%s\n", tmp_name()); return (0); }

  • C言語についてなのですが・・・

    さきほども上げたのですがカテゴリが間違っていたのでもう一回書き込みました まだプログラムの勉強をはじめた初心者なのですが、 テキストファイルから文字を読みこみ、大文字ならば小文字に変換し辞書順に並びかえるプログラムを作っているのですがどうしてもうまくいきません。 例えばtest.txtに XXX YYY YY XX BBB aaa aa BB とあれば aa aaa bb bbb xx xxx yy yyy と表示されるよにしたいんです。 自分が作ったプログラむはこれです。 まだテキストファイルからでなくキーボードからの入力になっていますが・・・ #include<stdio.h> #include<stdlib.h> #include<string.h> #include <ctype.h> int soto( const void *x, const void *y); int main(int argc, char *argv[]){ FILE *input; char str1[1000]; int i, j; for (i = 1; i < argc; i++){ qsort(argv[i], 1000, sizeof( char *), soto); strcpy(str1, argv[i]); for(j = 0; j < 100; j++){ str1[j] = tolower( str1[j] ); } printf("%s\n", str1); } return 0; } int soto( const void *a, const void *b){ char *x, *y; x = (char*)a; y = (char*)b; return x-y; } これだと小文字にはなるんですがソートされずに表示されてしまいます・・・ どのようにすればいけるのかご指摘のほどおねがいします

  • c++ 出力ファイル名

    c++ 初心者 です。fortran 77fortran 90でしたら幾分わかります。 c++ のプログラムで、for 文やwhile文の中に出力させる文章を置いて、出力されるファイル名をforやwhileの変数に関連ずけるには、どういったものを書けばよいでしょうか? たとえば、以下のようなプログラムを書いて実行すると、"test"という文が書かれた"1"というファイル名のファイルが出力されます。 / / / / / / / / / / / / / / / / / / / #include <iostream> #include <fstream> using namespace std; int main() { ofstream of; of.open("1", ios::app); of << "test" << endl; of.close(); return 0; } / / / / / / / / / / / / / / / / / / / 上のプログラムの中の出力ファイル名は"1"ですが、これをfor文等のループの中で"1"~"10"として10個のファイルを出力したいです。 以下のように書くと、"i"というファイルに"test"という文字が10個書き込まれます。 / / / / / / / / / / / / / / / / / / / #include <iostream> #include <fstream> using namespace std; int main() { int i; ofstream of;   for(i=0; i<=10; i++) {     of.open("i", ios::app);     of << "test" << endl;     of.close(); } return 0; } / / / / / / / / / / / / / / / / / / / 上のプログラムの中の"i"のクオーテーションマーク""をとって of.open(i, ios::app); のように書いたらエラーでコンパイルできません。また、 of.open((char*) i, ios::app); のように書くとコンパイルはできますが、ファイルができません。 ファイル名"1"に"test" ファイル名"2"に"test" ファイル名"3"に"test" ・ ・ ・ ファイル名"10に"test" という風に出力できればいいのですが... わかる方すみませんが、ご指導願います

  • C言語の課題に取り組んでいるんですが・・・

    まだプログラムの勉強をはじめた初心者なのですが、 テキストファイルから文字を読みこみ、大文字ならば小文字に変換し辞書順に並びかえるプログラムを作っているのですがどうしてもうまくいきません。 例えばtest.txtに XXX YYY YY XX BBB aaa aa BB とあれば aa aaa bb bbb xx xxx yy yyy と表示されるよにしたいんです。 自分が作ったプログラむはこれです。 まだテキストファイルからでなくキーボードからの入力になっていますが・・・ #include<stdio.h> #include<stdlib.h> #include<string.h> #include <ctype.h> int soto( const void *x, const void *y); int main(int argc, char *argv[]){ FILE *input; char str1[1000]; int i, j; for (i = 1; i < argc; i++){ qsort(argv[i], 1000, sizeof( char *), soto); strcpy(str1, argv[i]); for(j = 0; j < 100; j++){ str1[j] = tolower( str1[j] ); } printf("%s\n", str1); } return 0; } int soto( const void *a, const void *b){ char *x, *y; x = (char*)a; y = (char*)b; return x-y; } これだと小文字にはなるんですがソートされずに表示されてしまいます・・・ どのようにすればいけるのかご指摘のほどおねがいします