tsuduki999 の回答履歴

全26件中1~20件表示
  • C言語で可変長から固定長に変換方法は??

    C言語で可変長から固定長に変換方法は?? ある可変長のファイルがあって、レコード長を全て40にそろいたいと思って以下のようにプログラム作りました: ・・・・・(省略) len = strlen(buf); // fscanf使ってファイルから読みみ込んだものbufに格納 n = 40-len; char * str = (char *)malloc(n+1); memset(str, ' ', n); strcat(buf,str); //レコード40バイトになるまで空白を詰めていく fprintf(fpt,buf);//fprintf使って新しいファイルに書き込み ・・・・・・(省略) 実行してみたところ、全部40という長さになっていない、40超えるものも多数出ました。 これは何がだめですか?fprintfをつかったからだめですか?それともmalloc freeにする必要ありますか?まったく検討つかないです。どうかよろしくお願いします

  • C言語で可変長から固定長に変換方法は??

    C言語で可変長から固定長に変換方法は?? ある可変長のファイルがあって、レコード長を全て40にそろいたいと思って以下のようにプログラム作りました: ・・・・・(省略) len = strlen(buf); // fscanf使ってファイルから読みみ込んだものbufに格納 n = 40-len; char * str = (char *)malloc(n+1); memset(str, ' ', n); strcat(buf,str); //レコード40バイトになるまで空白を詰めていく fprintf(fpt,buf);//fprintf使って新しいファイルに書き込み ・・・・・・(省略) 実行してみたところ、全部40という長さになっていない、40超えるものも多数出ました。 これは何がだめですか?fprintfをつかったからだめですか?それともmalloc freeにする必要ありますか?まったく検討つかないです。どうかよろしくお願いします

  • 複数クラスで共通の関数、変数の呼び出し方

    お世話になります。 質問させて頂きたいことは 複数のクラスで共通して使われる関数、変数があった場合、その関数、変数は私の中で次の2通りの方法が思い当たったのですがどちらのほうがメモリ等の使用からよいのでしょうか? 1つめは あるヘッダファイル****.hを作成し、その中で関数を宣言し、変数はそのヘッダファイルのソースファイル中のグローバル変数とする。 2つめは クラスを作成し、静的メンバ関数、静的メンバ変数とする。 ネット等で拝見すると、あまりグローバル変数というのはよく見られていないようなので2つめの方がいいのかなと思っているのですが、静的メンバを今まで使ったことがないので、このような用途に使われるべきなのかも正直わかっていません。 検討外れのことを言っているのかもしれませんが、教えて頂ければと思っております。宜しくお願い致します。

  • シェルスクリプトの変数の制限?

    こんにちは。 シェルスクリプトで謎の現象が起こりまして悩んでいます。 現在、 #!/usr/bin/sh var='foo' if [ $? - eq - 0 ]; then mv xxx.bz2 xxx.old.bz2 echo $var | bzip2 -z >xxx.bz2 fi といった感じのシェルスクリプトを動かしています。 これを手作業で、 foo | bzip2 -z >xxx.tmp.bz2 とやると、xxx.tmp.bz2は1.2MB程度のファイルとなるのですが、 上記のシェルスクリプトで実行すると8KBほどにしかなりません。 シェルスクリプトの変数のサイズの制限かと思い、調べてみましたが、 特に制限があるとの資料はみつかりませんでした。 fooの出力がバイナリなので、そのせいかとも思ったのですが、unix系列の場合、windowsと違ってテキスト/バイナリの区別はないはずだしということで、理由がわかりません。 シェルの変数には、やはり制限があるのでしょうか?それとも他の理由でしょうか。ご存知の方がいらっしゃいましたら、ご教示お願いします。 環境はsolarisです。バージョンは、 $ cat /etc/release Solaris 10 8/07 s10s_u4wos_12b SPARC Copyright 2007 Sun Microsystems, Inc. All Rights Reserved. Use is subject to license terms. Assembled 16 August 2007 です。よろしくお願いします。

  • 64ビットと32ビットの違い

    C言語を使っているのですが、32ビット版のgccでコンパイルして実行できるファイルが、64ビット版のgccだと違う結果が出てきます。どちらのgccでも使える汎用性のあるファイルは書けないのでしょうか? 因みにstdio.h、math.h、stdlib.hのライブラリを使っていて、倍精度(double)と整数(int)を使っています。配列は宣言時に「*a」とでも宣言して、mallocで作っています。 漠然とした質問ですがよろしくお願いします。

  • 置換とかについて

    海外のサイトでcssテンプレート(勿論英語)でいいのがあったので、 ダウンロードしてエディターで編集しようと思っているんですが、 fontをエディター(デザインモード)で日本語で編集するとブラウザではちゃんと表示されますが、そのfontに対するソースコードは文字化け(対応した変なコード?)が書かれています。 その為、初めに、font-familyやfontに対するcssの中身をMSゴシック等に全て置換し、エディターのデザインモードではプロパティに置換したフォント(MSゴシック)がちゃんと選択されている状態で、デザインモードで例えばタイトル等の文字を編集し、いざ該当ソースコードを見ると、日本語になっておらず、文字化け(対応した変なコード?)にやっぱりなっています。 レイアウトしづらいので、ソースコードでも日本語表示したいのですが、何か対処方法御座いますでしょうか?

  • txtから読み込んだプログラムをdefineで置き換え

    txtに書き込んであるプログラムを ソース上に反映する事は可能なのでしょうか? defineでポインタ配列に読み込んだデータを置き返したのですが 上手くいかなくて、分かる方がいたら教えてくださいorz

  • 64ビットと32ビットの違い

    C言語を使っているのですが、32ビット版のgccでコンパイルして実行できるファイルが、64ビット版のgccだと違う結果が出てきます。どちらのgccでも使える汎用性のあるファイルは書けないのでしょうか? 因みにstdio.h、math.h、stdlib.hのライブラリを使っていて、倍精度(double)と整数(int)を使っています。配列は宣言時に「*a」とでも宣言して、mallocで作っています。 漠然とした質問ですがよろしくお願いします。

  • データベースを作るために必要な知識

    データベースの方か迷ったのですが このジャンルでお願いします。 データベースというものを実際にプログラムで作ることによって理解を深めたいと思いました。 とはいっても、MySQLやPostgresSQLのようにそこまで本格的で膨大なものは作れないですから、 何か作れる範囲でのことでやれたら理想的です。 実際にMySQLのソースを見てみたのですが、やはりほとんど理解できませんでした・・・ トランザクションやらメモリやらそこらへんに対する知識が必要なのかなぁと個人的には思ったのですが、 参考になる書籍やサイトなどあれば何冊でも構わないので教えて頂けないでしょうか?

  • トークンで分けた文字列をさらにトークンで分ける

    初心者です。よろしければご教授下さい。 temp.c:12: warning: useless keyword or type name in empty declaration というような文字列がg_str02[0]に格納されている時に、まずは「 」(半角スペース)を区切り文字としてトークンごとに分け最初の2つのトークンをmretsu1[0]とmretsu1[1]の中に格納し、さらにmretsu1[0](上記で言う「temp.c:12:」)を「:」を区切り文字としてトークンごとに分けmretsu2[0]とmretsu2[1]に格納するような関数を作りたいのですが、コンパイルは成功するのですが、できた実行ファイルを実行するとエラーが起きて強制終了されてしまいます。 現在ソースは以下のようになっています。 ////////// char mretsu1[255][255]; char mretsu2[2][255]; char *token1 = " "; char *token2 = ":"; strcpy(mretsu1[0], strtok(g_str02[0], token1)); strcpy(mretsu1[1], strtok(NULL, token1)); strcpy(mretsu2[0], strtok(mretsu1[0], token2)); strcpy(mretsu2[1], strtok(NULL, token2)); ////////// デバッグをしてみた所、どうもmretsu1[0]をさらに分解しているところにエラーがあるようです。 よろしくお願いします。

  • 設計について

    プログラム作成を他人に依頼できるように設計書を作りたいのですが、書き方がわかりません。その設計書があれば誰がコーディングしても同様のものができるような設計書を作りたいです。 そこで、ソフトウェアの設計の入門書で良書はありませんか?SE関係の本を書店で読んだところ、それらは依頼者からの要求を仕様書に落とし込むような技術を説明しているような本でした。そういったものでなく作るものが決定していて、それを作る際の指針となるデータ構造やGUI設計といったものの参考となる書類の作成をしたいです。 一般論でお願いします。

  • プログラムの勉強の仕方

    四月から就職したんですけど、プログラムがうまく書けなくて困ってます。 なんとか追いつこうと参考書を買って仕事が終わってから一から勉強しているのですが、なかなか進みません。会社の同期を見るとネット上のプログラムを組み合わせたりして要領よくどんどん進んでいます。自分も仕事中は同じようにネット上のプログラムを使っているのですが、なかなか理解できずに上手く進みません。 皆さんはどういう風にプログラム言語を習得していますか?

  • 型について

    Cの型の中にint と long int がありますけどこの違いは何なのでしょうか?本にはどちらも4ビットの整数(long intは長整数となっていますが)-2147486648~2147483647となっていますが・・。 同様にdouble と long double は何が違うのでしょうか? 初歩的なところですがよろしくおねがいします。

  • C言語で文字列操作のアルゴリズム

    C++言語で char s[] = "AAABBBCCCDDDEEE"; という文字列があり、 3バイト毎、取り出して前に*をつけ *AAA s=[BBBCCCDDDEEE] *BBB s=[CCCDDDEEE] *CCC s=[DDDEEE] *DDD s=[DDD] *EEE s=[] のように表示させるプログラムで、 最後だけは3文字とは限らない場合も考慮した 最終的にsが空になるアルゴリズムを考えていますが 何か良い方法はありますか? 例)最後が3文字でない場合 *EE s=[] 2文字でした。

  • ヌル文字とは一体何でしょうか

    はじめまして。  私はC言語というか、プログラムの超初心者なのですが、参考書を読んでいる途中で「C言語では¥0を整数に変換すると、0という値になります」という記述があったのですが、これは一体どういう意味なのでしょか?どなたか分かりやすく教えていただければ非常に幸いです。

  • マルチスレッドプログラミングの良技術書籍

    C++言語を用いてマルチスレッドを用いた開発を行う予定ですが、 当方マルチスレッドを用いた開発の経験がなく、 事前に前提知識を付けておきたいと思うのですが、 マルチスレッドプログラミングにおいて、 この書籍が分かりやすい、もしくはバイブル的な書籍があれば、 ご教示お願い致します。 ちなみに開発環境はVC++2005です。

    • ベストアンサー
    • noname#95666
    • C・C++・C#
    • 回答数8
  • マルチスレッドプログラミングの良技術書籍

    C++言語を用いてマルチスレッドを用いた開発を行う予定ですが、 当方マルチスレッドを用いた開発の経験がなく、 事前に前提知識を付けておきたいと思うのですが、 マルチスレッドプログラミングにおいて、 この書籍が分かりやすい、もしくはバイブル的な書籍があれば、 ご教示お願い致します。 ちなみに開発環境はVC++2005です。

    • ベストアンサー
    • noname#95666
    • C・C++・C#
    • 回答数8
  • C++言語で、構造体のコピーは可能(しても良い)のでしょうか?

    C++言語で、構造体のコピーは可能(しても良い)のでしょうか? 問題がある場合は、なぜだめなのか知りたいです。 構造体は可変長ではありません。 typedef struct kumi { char namae[10]; int ten; }Kumi; Kumi a, b; strcpy(a.namae, "AAA"); a.ten = 50; b = a;

  • GPLライセンスのライブラリを利用=ソース公開しなきゃだめ?

    GPLライセンスについて調べています。 考え方がまちがっていたらご指摘いただきたいです。 1.GPLライセンスのライブラリを用いたシステム開発を行った場合   ソースの開示を求められたら、開示しなければいけない? たとえば、Javaで開発したシステムの場合、ここでいうソースコードとはjavaファイル郡になるのでしょうか? jarファイルとかwarファイルだけでは駄目 ということですよね? 2.GPLライセンスのライブラリを用いたソフトを作って売る場合も   同様で、ソースの開示を求められたら、開示しなければいけない? つまりは、Javaで開発したソフトをパッケージ販売したいなら、 ソースコードをお客に開示するつもりでいなければならない ということでいいですか? また、ソースコードを開示する先 は、お客だけでいいのでしょうか? まったく関係のない人から開示を求められた場合も、ソースコードを渡さなきゃいけないのでしょうか? 以上です。 よろしくおねがいします。

  • switch文かif文か?

    スイッチ(SW50~SW80)を押したら、それに対応したコマンドを送る。というものを作っています。 スイッチはスライドスイッチなので、 1)ON(0)の間だけコマンドを出して、OFF(1)は止める。 2)ONしている間に別のスイッチが入ったら止める。 という風に組みたいのですが、中々上手くいきません。 8ピンのスライドスイッチなのですが、1~4はIDとして、5~8をコマンドとして使います。 なので、1~4は絶対にONになります。とすると、2)にしたいとき、defaultが使えなくて…if文を入れたらややこしくなりました。 もっと簡潔に、かつ解りやすく書くにはどうしたらいいでしょうか? #define SW1 input(PIN_C0) // ID #define SW2 input(PIN_C1) // ID #define SW3 input(PIN_C2) // ID #define SW4 input(PIN_C3) // ID #define SW50 PIN_C4 #define SW60 PIN_C5 #define SW70 PIN_C6 #define SW80 PIN_C7 uchar LED_ON(void){ uchar DATA; DATA=0x50; DATA+=0x4F; DATA+=0x4E; return(DATA); } uchar LED_OFF(void){ uchar DATA; DATA=0x50; DATA+=0x4F; DATA+=0x46; return(DATA); } void LED(void){ ulong n; uchar DATA; while(1){ WriteFSKbyte(DATA); switch(n){ case SW50:DATA=LED_ON(); if((SW50||SW60||SW80)==0){ DATA=LED_OFF(); } break; case SW60:while(SW60==0){ DATA=LED_ON(); DelayMs(1000); DATA=LED_OFF(); DelayMs(1000); if((SW50||SW70||SW80)==0) break; } break; case SW70:while(SW70==0){ DATA=LED_ON(); DelayMs(500); DATA=LED_OFF(); DelayMs(500); if((SW50||SW60||SW80)==0) break; } break; case SW80:DATA=LED_OFF(); if((SW50||SW60||SW80)==0){ DATA=LED_OFF(); } break; } } }

    • ベストアンサー
    • noname#85552
    • C・C++・C#
    • 回答数7