C・C++・C#

全26354件中19741~19760件表示
  • ファイルの置換

    ファイルを置換するプログラムを作ったのですがうまく置換してくれません。コードは以下のように書きました。(コンパイラは出来ました) #include <stdio.h> #include <stdlib.h> #include <string.h> #define FALSE 0 #define TRUE 1 main() { FILE *fp; char filename[256]; FILE *outfp; char outfilename[256]; char key[128]; char str[128]; char c; int p; int keylen; int i=0 ; int search=FALSE; int count =0; printf(" enter filename"); scanf("%s",filename); printf("seach word"); scanf("%s",key); keylen=strlen(key); printf("change word"); scanf("%s",str); if((fp=fopen(filename,"r"))==NULL) { printf("file open error"); exit(1); } strcpy(outfilename,filename); strcat(outfilename,"_"); if((outfp=fopen(outfilename,"w"))==NULL) { printf("file open error"); exit(1); } while((c=fgetc(fp))!=EOF) { if(search) { if(c != key[i]) { search=FALSE; for(p=0;p<i;p++) { fputc(key[p],outfp); } fputc(c,outfp); i=0; } else{i++;} } else { if(c==key[i]) {search=TRUE;i++;} else {fputc(c,outfp);} } if (keylen==i) { count++; fputs(str,outfp); search=FALSE; i=0; } } fclose(fp); fclose(outfp); printf("apperance number %d\n",count); return 0; } どこか間違っていますか?教えてください。

  • A*アルゴリズム

    A*アルゴリズムのソースコードが載っているサイトをご存知なら教えて下さい。英語でもかまいません。お願いします。

  • List構造

    Listの尻にノードを追加する関数で困っています。 以下に、ソースの一部を掲載させていただきます。 typedef struct __node{ int data; struct __node *next; }Node; ... /*リストの尻にノードを追加する関数 * 引数: head. リストの先頭ノードのポインタ data. リストの尻に追加したいint型の変数*/ void Insert_Tail(Node *head, int data) { Node *ptr = head; if(ptr == NULL){ /*<ノードが存在しない時には追加されない>*/ /*領域の確保*/      head = (Node*)calloc(1,sizeof(Node)); /*データをセット*/ head->data = data; head->next = NULL; return ; }else{ /*<ノードが存在するときには正常に動作>*/ while(ptr->next != NULL){ ptr = ptr->next; } /*領域の確保*/ ptr->next = (Node*)calloc(1,sizeof(Node));      /*データのセット*/ ptr->next->data = data; ptr->next->next = NULL; } } コメントアウトにも書かせていただきましたが、ノードがすでに存在するときには、正常にノードの最後に追加してくれるのですが、ノードが存在しない時にはリストに追加してくれません。 どうかご指導、ご指摘の程お願いします。

  • 文字列変換プログラムのポインタについて

    いかの関数は、文字列を16進文字列に変換する関数です。過去の質問を参考に自分で作りました。 動作することはするんですが、よく見るとpoとpiは領域確保していません。これってプログラム上まずいでしょうか。 char *conv( char *buff, char *str ) {   char *po;   char *pi;   for(po=buff, pi=str; *pi; pi++)   {     if(0 <= *pi && *pi <= 15)     {       sprintf(po, "%x", 0);       po++;       sprintf(po, "%x", *pi);       po++;     }else {       sprintf(po, "%x", (0x0f & (*pi >> 4)));       po++;       sprintf(po, "%x", (0x0f & (*pi % 16)));       po++;     }   }   *po='\0';   return(buff); }

  • H8 LCD の表示

    H8S2612を使っています。LCDを使いたいですが,なかなかできません,1行目が表示できるんですが,2行目が出てこないです。LCDの4ビット表示を使っています。r/w とD1~D3はGNDにつないでいます。 ちなみに,1行目が表示できるから,初期設定と4ビット表示の関数は問題ないと思いますが。何方がおしえていただけませんか?よろしくおねがいします。

  • C#での関数テーブルの作り方

    お世話様です。 C++で関数ポインタを使用していたのですが、C#にそのまま持ってくると エラーが発生します。 C++でのコードをどのように変更したら良いでしょうか。 [C++] typedef struct {  char *cmd;  BOOL (*exe)(char* oprand); }FTBL; FTBL tbl[] = {  { "AAA", aaa },  { "BBB", bbb },  { "CCC", ccc } }; [C#](当方のコードでエラーがでます。) delegate bool Execute( string oprand ); struct FTBL{  string cmd;  Execute exe; }; FTBL[] tbl = {  { "AAA", aaa },  { "BBB", bbb },  { "CCC", ccc } }; コマンド名とコマンド関数のテーブルですが、要は関数テーブルの 作り方を知りたいのです。 ご教授よろしくお願いいたします。

  • intに文字

    int x; printf("数字:"); scanf("%d",&x); としたとき xに数字じゃなく文字が入力した場合に これをもう一回表示させるのにいい方法ありますか?

  • コンパイラについて

    C言語初心者です。 コンパイルしたときにたまに出る、タイムスタンプが変更していません??みたいなのが出るときがあるのですが、これって何なのでしょう?? この表示がでたあとは、どう考えても間違っていないプログラムを組んでもコンパイル自体は通るのですが、実行しますとエラー、この情報を機密事項として送信しますか?と、出てしまうのです。 もしかしたら実行エラーしたあとの処理が何も変わってないって意味なのでしょうか??(この後、何をしても 実行時エラーで送信しますか?って出ちゃいます) また、これが出てしまった後どうすれば普通の結果が出せるようになるのでしょう??コンパイラの名前とか書いたほうがよろしいのでしょうか?何か不都合がありましたら補足させていただきます どうかよろしくお願いいたします。

  • 0.5秒間後に次の処理に進みたい (WINAPIで)

    文字を一瞬だけ表示(見えたと思ったら消えたという感じに)したいのですがどうすればいいでしょうか? できるだけ簡単な方法があればと思っています。

  • enterでループ終了

    #include <stdio.h> int main(void) { char str[255]; int i, len; while (1){ printf("文字列を入力してください:"); if (fgets(str, sizeof(str), stdin) == NULL) { break; } len = strlen(str); if (len > 0 && str[len - 1] == '\n') str[len - 1] = '\0'; if (str[0] == '\0') break; enterで終了するプログラムの例ですが、 if (fgets(str, sizeof(str), stdin) == NULL) のNULLはどういった理由で必要ですか? また、 if (len > 0 && str[len - 1] == '\n') str[len - 1] = '\0'; を消して、 if (str[0] == '\0') break; を、if (str[0] == '\n') break; と書き換えれば、終了すのではないですか?不適な理由がありますか?

  • サービスについて

    C言語でサービスをインストールするプログラムを作っているのですが、SCMを開く所で失敗してしまいます。 色々やりましたが中々解決できませんでした。 知っている方が居た場合対処法を教えてください。 ちなみにこのプログラムを動かしたOSはWindows Meです #include<windows.h> int main(){ char *vh_p; SC_HANDLE hscm; SC_HANDLE hService; hscm=OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS); if(hscm==NULL){ printf("open失敗"); return 0; } hService=CreateService(hscm,"testService","testService",SERVICE_ALL_ACCESS,SERVICE_WIN32_OWN_PROCESS,SERVICE_AUTO_START,SERVICE_ERROR_NORMAL,"C:\cpp\WIN32\sitelook_server.exe",NULL,NULL,NULL,NULL,NULL); if(hscm!=NULL){ printf("失敗インストール"); return 0; } scanf("%s",vh_p); CloseServiceHandle(hscm); }

  • マルチスレッド間でデータ交換をする方法

    マルチスレッドの知識がないままに、プログラミングをする必要が出てしまったのですが、書籍などで調べても分からない部分があるため、質問いたします。 Win32APIを用いて(MFCは使用しない)、WindowsでVC7.0環境です。 やりたいことは、 スレッドAとスレッドBを生成し、 スレッドAの終了時点で、スレッドBがスレッドA内部で生成したクラスのインスタンスを取得するというものです。(もしくはその逆) スレッドAとB自体もクラスで構成しており、内部で生成されるインスタンスはグローバルではないため、スレッドBからスレッドAを見えるような仕組みが必要なのでしょうか?? まだイメージだけの段階で、ソースコードで表現できなくて申し訳ないのですが、簡単にご教授くださる方、もしくは参考になるサイトを教えてくださる方がいらっしゃいましたら、お願いいたします!

  • WINAPIでのキー入力した文字列の比較について

    以前ここで教えていただいた wsprintf( input, "%s%c", input, (int)wp ); を使って文字列の比較判定を行ないたいのですが WM_CHAR内で wsprintf( input, "%s%c", input, (int)wp ); wsprintf( ans, "%s", input); check= strcmp(que ,input); //queはファイルからのアルファベット文字列 if(check == 0){ //正解した時の処理 } else{ 不正解だった時の処理 } としているのですが一文字入力するごとにelseに引っかかって上手くいきません,どうすればいいでしょうか? よろしくお願いします。

  • C言語の二項分布

    こんにちは。C言語はほとんど初心者です。 P(X=i) = nCi p^i (1-p)^n-i これは二項分布の式ですが、この二項分布をC言語で表記したいのですが、解りません。Javaのプログラムなら、ホームページを参考にできそうなのですが.....。もし、ホームページ上にあるならば、そのサイトもおしえていただけないでしょうか?

  • トークンの頻度。

    出現するすべてのトークンの頻度をアルファベット順に表示するプログラムはどうしたらいいのでしょうか?そもそもトークンの頻度とはどういうものでしょうか?初心者なのでわかりやすくお願いします。よろしければ回答例もお願いいたします。

  • 関数の仮引数・実引数、またプログラムの計算についての正誤

    漸化式で計算を求めるプログラムを作成したいのですがわからないところが出てしまったのでご教授のほうお願いします。 levin()関数の中で漸化式の計算を行っているのですが、その関数の中身の●の部分をどう表現したらいいのかわかりません。仮引数や実引数をどのように設定するか、もう一つはこのプログラムで漸化式の『alpha』を求めることができるのか、また間違っているなら指摘していただけるとありがたいです。プログラムはめちゃくちゃだと思いますがよろしくお願いします。 #include<stdio.h> #define SIZE 100 #define M 1 double levin(●, ●); int main(){ double a[SIZE]; double r[SIZE]; double alpha; int i; int m; a[0] = a[1] = 0.0; m = 0; alpha = r[0]; for(i = 0; i < M; i++){ levin(●, ●); } return 0; } double levin(●, ●){ int m = 50; int k; double beta = 0.0; double km; double a[SIZE]; double r[SIZE]; double new_a[SIZE]; double alpha; for(k = 0; k <= m; k++){ beta += ((a[k] * (r[m + 1 - k])); } km = - (beta / alpha); new_a[0] = 1; new_a[++m] = 0; for(k = 0; k <= m; k++){ new_a[k] = ((a[k]) +((km) * (a[m - k]))); } alpha *= 1 - ((km) * (km)); printf("%lf\n", alpha); a = new_a; return 0; }

  • プロダクトキーが必要なソフトって、どうやって作るんですか?

    こんにちは、VC++6.0を使ってます。 商用のソフトはよくプロダクトキーが必要だったりしますが、 これって、大量にソフトを生産する時、どんな方法を使って作成しているんでしょう? いちいち少しだけコードを書き換えてビルドしなおすなんてことはしないですよねぇ?

  • エラーについて

    ネットワークプログラミングを作っているのですが、 今までほとんど扱ったことのないC++を使っていて 下記のエラーに悩まされています。 ****************************** i:\program\client\client.cpp(168): error C2228: '.sin_family' : 左側がクラス、構造体、共用体ではありません。 i:\program\client\client.cpp(169): error C2228: '.sin_port' : 左側がクラス、構造体、共用体ではありません。 型は 'int' です。 i:\program\client\client.cpp(170): error C2228: '.sin_addr' : 左側がクラス、構造体、共用体ではありません。 型は 'int' です。 i:\program\client\client.cpp(170): error C2228: '.S_un' : 左側がクラス、構造体、共用体ではありません。 i:\program\client\client.cpp(170): error C2228: '.S_addr' : 左側がクラス、構造体、共用体ではありません。 ****************************** エラーの出ている行は ****************************** memset(&saddr, 0, sizeof(SOCKADDR_IN)); saddr.sin_family = lpHost->h_addrtype; saddr.sin_port = htons(uport); saddr.sin_addr.s_addr = *((u_long*)lpHost->h_addr); ****************************** という部分になります。 手元のサンプルも全く同じに書いてあるのですがエラーは出ず、 ほぼ同じように自分の手で打ったプログラムにはエラーが出ています。 エラーそのものの意味も実はよくわかっていない状態なので、 ご教授願えたら、と思います。

  • C++

    C++のプログラムを実行しているところを動画として保存したいのですがどうすればいいのでしょうか?どなたかお願いします。

  • MQプログラミング MQGetの手法について

    MQ(「MQS」IBM製のミドルウェア)を利用したCのプログラムを書いているのですが、Queueに入っているメッセージをGetする際、Put側の意図するメッセージグループ単位(任意の行数)でGetすることはできるのでしょうか? できる場合、どのようなロジックを使えば良いでしょうか? 上の文章では分かりにくいと思うので、実装例を書いておきます。 (例) Queue:"orange" が一つ存在する メッセージをPutするアプリケーション:"mqs_put" メッセージをGetするアプリケーション:"mqs_get" (1)mqs_put1が3行分のメッセージをorangeにPutする ↓ (2)mqs_put2が5行分のメッセージをorangeにPutする ↓ (この時点でorangeには8行のメッセージが存在) ↓ (3)mqs_get1が、mqs_put1がPutしたメッセージ(3行分)をGetする ↓ (4)mqs_get2が、mqs_put2がPutしたメッセージ(5行分)をGetする