mistmoon79のプロフィール

@mistmoon79 mistmoon79
ありがとう数6
質問数3
回答数10
ベストアンサー数
2
ベストアンサー率
50%
お礼率
100%

  • 登録日2009/12/18
  • 卒業研究でプログラムを組むことになりましたが、C++初心者のため戸惑っ

    卒業研究でプログラムを組むことになりましたが、C++初心者のため戸惑っています。 現在困っていることは、CSVファイルのデータ(縦一列)を1行目を読み込み計算、2行目を読み込み計算、3行目を読み込み計算…といった作業をデータの数だけ繰り返し、最終的にCSVファイルに出力するプログラムを組みたいと考えています。 私も引き続きC++を勉強しながら回答お待ちしています。 どうぞよろしくお願いします。

  • ヘッダファイル? malloc.hとかは自分で足したり作ったりできるのでしょうか

    CmachineでC言語を勉強していて、メモリの確保までたどり着きました。 でも、プログラムを実行できないんです。調べたところ、malloc.hやmemory.hがCmachineのincludeフォルダに入っていませんでした。 char *b; b = (char *)malloc(sizeof(char)*200); とか書いても実行できませんよね・・・。Cmachineは勉強するのに便利だし、ヘッダファイルを追加できないのでしょうか。includeフォルダにテキストファイルで書いて入れればできそうなのですが。 ちなみに、Visual C++ Express Editionでも同じプログラムを実行したのですが、できませんでした。あれもヘッダファイルが無いとかの問題なのでしょうか。あれは操作が複雑で難しくてよくわかりません。 アドバイスやいい方法をご存知の方、教えてください!!

  • CFile::Renameで書き込み途中のファイルがリネームされて困っ

    CFile::Renameで書き込み途中のファイルがリネームされて困っています。 ファイル書き込み中のファイルはリネームしない方法はあるのでしょうか? ファイルのリネーム(CFile::Rename)関数を使用してフォルダ内にあるファイル名をリネームする処理を作成しています。 フォルダ内にはA_で始まるファイルが複数存在し、一定周期で別のスレッドからA_で始まるファイルが書き込まれている状態です。 私が作成している処理は、そのフォルダにA_で始まるファイルが存在する場合に、A_をRename関数でB_にリネームしています。 ここで、別スレッドがA_で始まる新しいファイルを書き込みしている最中に私が作成している処理でRename関数が実行されると、基本的にはExceptionが発生するのですが、Exceptionが発生せずに書き込み途中のファイルがRenameされてしまっています。 1.A_XXX001.txtに書き込み中(100行目まで書き込み完了) 2.Rename処理が実行される。 3.B_XXX001.txtが作成される(100行目までのファイル 作成日:2010.02.04 10:00) 4.その後もA_XXX001.txtに書き込みが行われ200行目まで書き込んで終了 (作成日:2010.02.04 10:02) 結果:B_XXX001.txtファイルは不完全なファイルとして作成されてしまっています。 このような現象が起こってしまっています。 どなたかご教授願います。

  • 関数がうまく動作しない

    関数get_monthにchar *型の文字列を引数にして、先頭の三文字(大文字でも小文字でも可)が正しいかどうかを関数strnxcmpでチェックしていくものです。 ところが、関数get_month中のreturn iで帰ってくるのはメインプログラムを動作させたところいつも0になってしまっているようです。(本当は1~12が帰ってくるようにしたい。) for(i=1;i<=12;i++) { if(strnxcmp(tuki[i],s,3)==0) { return i;←ここのリターンで0が帰ってきてしまう。 } } } 何がおかしいためにこのようになってしまうのでしょうか? よろしくお願いします。 int strnxcmp(const char *s1,const char *s2,size_t n) { while(n && toupper(*s1) && toupper(*s2)) { if(toupper(*s1) != toupper(*s2)) { return ((unsigned char)*s1 - (unsigned char)*s2); } s1++; s2++; n--; } if(!n)return 0; if(*s1) return 1; return -1; } int get_month(char *s) { int m,i; char *tuki[]={"","January","Feburary","March","April","May","June","July","Augst", "September","October","November","December"}; for(i=1;i<=12;i++) { if(strnxcmp(tuki[i],s,3)==0) { return i; } } return -1; }

  • 関数がうまく動作しない

    関数get_monthにchar *型の文字列を引数にして、先頭の三文字(大文字でも小文字でも可)が正しいかどうかを関数strnxcmpでチェックしていくものです。 ところが、関数get_month中のreturn iで帰ってくるのはメインプログラムを動作させたところいつも0になってしまっているようです。(本当は1~12が帰ってくるようにしたい。) for(i=1;i<=12;i++) { if(strnxcmp(tuki[i],s,3)==0) { return i;←ここのリターンで0が帰ってきてしまう。 } } } 何がおかしいためにこのようになってしまうのでしょうか? よろしくお願いします。 int strnxcmp(const char *s1,const char *s2,size_t n) { while(n && toupper(*s1) && toupper(*s2)) { if(toupper(*s1) != toupper(*s2)) { return ((unsigned char)*s1 - (unsigned char)*s2); } s1++; s2++; n--; } if(!n)return 0; if(*s1) return 1; return -1; } int get_month(char *s) { int m,i; char *tuki[]={"","January","Feburary","March","April","May","June","July","Augst", "September","October","November","December"}; for(i=1;i<=12;i++) { if(strnxcmp(tuki[i],s,3)==0) { return i; } } return -1; }