11/12/23 23:38:13.24
printfの書式文字列で size_t や time_t や long long の数値を表示したい時は、どんなふうに書けば最も移植性が高いの?
3:デフォルトの名無しさん
11/12/23 23:38:49.15
で、それをgettext のリソース中に書くにはどうしたらいいの?
4:デフォルトの名無しさん
11/12/23 23:48:19.00
unsigned char const*const format_str =
#ifdef __GNUC__
"GNU式~"
#elseif _MSC_VER
"MS式~"
#elseif __BORLANDC__
"BCC式~"
#elseif …
"…"
#else
"仕方が無い~"
#endif
; /* close format_str */
5:デフォルトの名無しさん
11/12/24 00:38:20.44
#include<stdio.h>
int main(void)
{
char x;
x='A';
}
エラーが出た。
何で?
6:デフォルトの名無しさん
11/12/24 00:45:40.29
エラーみりゃわかんだろ。
7:デフォルトの名無しさん
11/12/24 02:41:29.07
#include <stdio.h>
int main(void)
{
int ar[3];
printf("ar=%p\n", ar);
printf("&ar=%p\n", &ar);
printf("&ar[0]=%p\n", &ar[0]);
printf("(&ar)[0]=%p\n", (&ar)[0]);
return 0;
}
ar=0028FF14
&ar=0028FF14
&ar[0]=0028FF14
(&ar)[0]=0028FF14
これ何でみんな同じ場所になるの? 特に2、4行目とか
8:デフォルトの名無しさん
11/12/24 03:18:18.23
int a = 0;
a = 0;
&a = 0xffffffff;
&a[0] = 0;
(&a)[0] = 0;
このうち&aは特別
9:デフォルトの名無しさん
11/12/24 04:19:02.90
#include<stdio.h>
int main(void){
char first, last;
first = "kojima";
last = "yosio";
printf("姓=%s\n", first);
printf("名=%s\n", last);
return 0;
}
これどこか間違ってるみたいだけど、わからないので教えてください><
10:デフォルトの名無しさん
11/12/24 04:23:40.13
>>9
firstとlastを定義してるとこの型がおかしい
11:デフォルトの名無しさん
11/12/24 04:44:40.52
>>つまり、どうすればいいのですか?
12:デフォルトの名無しさん
11/12/24 04:45:36.88
11ミス
>>10
つまりどうすればいいのですか?
13:デフォルトの名無しさん
11/12/24 07:19:09.59
>>9>>12
char first, last;
→
char *first, *last;
14:9
11/12/24 09:00:26.22
ありがとうございましたm(__)m
15:デフォルトの名無しさん
11/12/24 09:03:56.78
いえいえ
16:デフォルトの名無しさん
11/12/24 10:28:17.09
東京にある6つのキー局の内、製作から財務まで一貫して朝鮮人が行ってるテレビ局が1つ
中国共産党から毎年大量の反日工作費が流れているテレビ局が2つ
もろに北朝鮮と繋がっているテレビ局が1つ
宮城県庁を訪問する谷垣禎一(自民党)と松本龍(民主党)
URLリンク(www.youtube.com)
自民党と民主党の違いw
17:デフォルトの名無しさん
11/12/24 15:48:05.16
#include<stdio.h>
#include<math.h>
char *Parity();
int main(void){
int num;
char *pari;
printf("整数を入力してください。\n");
scanf("%d", &num);
pari = Parity(num);
printf("%s\n", pari);
return 0;
}
char *Parity(int nn){
char *parit;
if (nn % 2 = 0){
parit = "even";
}
else {
parit = "odd";
}
return parit;
}
ifの行にエラーが出るのだけど、どうしてですか?
18:デフォルトの名無しさん
11/12/24 17:44:12.89
mysqlでinsertをwhile文の中で実行すると、command out of sync;のエラーがでるのですが、
while分の中ではできないのでしょうか。
プログラムは以下のようになっています。
19:デフォルトの名無しさん
11/12/24 17:45:49.24
貼り忘れました。
connect = mysql_init(NULL);
if (!mysql_real_connect(connect, MYSQL_SERVER, MYSQL_USERNAME,
MYSQL_PASSWORD, MYSQL_DATABASE, MYSQL_PORT,
MYSQL_SOCKET, MYSQL_OPT)) {
fprintf(stderr, "%s\n", mysql_error(connect));
exit(1); }
if (mysql_query(connect, "select * from mysql where ID!=1")) {
fprintf(stderr, "%s\n", mysql_error(connect));
exit(1); }
result = mysql_use_result(connect);
while ((row = mysql_fetch_row(result)) != NULL) {
処理
sprintf(data,"replace into mysql values(%f,%f,%f,1)",a,b,c);
if (mysql_query(connect, data)) {
fprintf(stderr, "%s\n", mysql_error(connect));
exit(1);
}
mysql_free_result(result);
mysql_close(connect);
}while文の終了
20:デフォルトの名無しさん
11/12/24 18:13:01.40
>>14
配列の実体の変数に対し、&をつけてアドレスを取り出した時だけ、同じアドレスが取り出される(ポインタを挟んで参照すると、流石に変わる)みたいだけど、
int ar[N];
ar == &ar
Cではこういう規約みたいなものがあったりするのかな?
それとも偶々か。ちなみにGCC4.5とVC10で試してみた。
21:デフォルトの名無しさん
11/12/24 18:31:34.50
>17
if (nn % 2 = 0){
if((nn % 2) == 0){
二重括弧いらないと思うが念のため。
22:デフォルトの名無しさん
11/12/24 19:02:27.39
>>21
助かりました
ありがとうございました。
23:デフォルトの名無しさん
11/12/24 20:00:49.79
こんなこと聞くのもスレチな気がするんだけど
プログラミングの基礎力を上げるいい方法とか問題ってないかな?
C言語4年やってるけどまだまだわからないことが多すぎて不安になる。
友達に聞かれても迷うことが多くて最近自分が嫌になってきた。
24:デフォルトの名無しさん
11/12/24 20:44:12.73
書いたり読んだりしたら良いとおもうよ
25:デフォルトの名無しさん
11/12/24 20:47:10.48
バッチファイル便利だなぁ...
バッチジョブを終了しますか?ってのはWindows仕様なの?
26:デフォルトの名無しさん
11/12/24 20:51:09.97
#include<stdio.h>
int main(void)
{
char *character;
character='c';
}
ってしたときに、characterの値を変えたい。
関数に渡してcをdに変えたい場合、関数は
char* characterkansu(char *x)
{
x='d';
}
でOK?
呼び出す時は
characterkansu(character);
でOK?
27:デフォルトの名無しさん
11/12/24 20:53:07.31
どちらもNG.
28:デフォルトの名無しさん
11/12/24 20:54:39.08
>>27
どこがダメでしょうか?...
29:デフォルトの名無しさん
11/12/24 20:56:49.14
idef
endif
ってプログラマーじゃない限り知らなくていいでしょうか?
どういうときに使うのですか?
30:デフォルトの名無しさん
11/12/24 21:24:50.26
>>26
#include<stdio.h>
int main(void)
{
char character;
character='c';
characterkansu(&character);
}
char* characterkansu(char *x)
{
*x='d';
}
コードがあるのに、これでいいでしょうかって動かす環境なしでやってるってこと?
覚えるのぜったい無理だと思う。
31:デフォルトの名無しさん
11/12/24 21:26:02.67
>>23
「Cプログラミング診断室」とか「Cプログラミングの落とし穴」とか、
「C言語 FAQ 日本語訳 」とか「Unix Programming Frequently Asked Questions」とか読め。
32:デフォルトの名無しさん
11/12/24 21:35:47.91
18,19ですけど、
エラーを直せません。
どなたかアドバイスいただけませんか。
33:デフォルトの名無しさん
11/12/24 21:43:48.42
>>19
URLリンク(dev.mysql.com)
をちゃんと読め
「また、mysql_use_result()が終了するまで、他のクエリーを発行してもなりません。」
回避するには mysql_store_result を使う。
34:デフォルトの名無しさん
11/12/24 22:26:49.65
>>29
#ifdef / #endif のことか?
別に職業プログラマじゃなくても、趣味プログラマでも普通に使うぞ
他の条件コンパイル絡みのものとあわせて、例えば…
・デバッグ時だけ処理したい部分があるときに使う
・第二の範囲コメントとして使う
・1つのプログラムでソースファイルが複数になったときに、依存関係を解決するために使う
・複数のプログラムから共用されるようなライブラリを作るときに使う
など…まあ、ある程度の複雑さを持つプログラムを書くなら知っておきたいね
35:デフォルトの名無しさん
11/12/24 23:08:11.96
>>33
できました。
ありがとうございます。
36:デフォルトの名無しさん
11/12/24 23:15:37.83
>>34
#ifdefや#endifみたいなのって関数っていうんですか?
他に#defineみたいなのは知ってますが、関数より#~は
数が少ないですよね。
37:デフォルトの名無しさん
11/12/24 23:26:32.64
>>36
関数ではなく、Cプリプロセッサへの指令。Cコンパイラを通る前に処理される。
Cプリプロセッサについて詳しく知りたいならググればいいと思う。
38:デフォルトの名無しさん
11/12/24 23:30:30.62
>>37
で
#define
#include
とか以外に何かある?#~
39:デフォルトの名無しさん
11/12/24 23:34:25.46
#pragma
40:デフォルトの名無しさん
11/12/24 23:36:13.71
>>38
あるが、そろそろ自分で調べようとは思わないのかい?
41:デフォルトの名無しさん
11/12/24 23:39:02.49
>>40
#は記号だから日本語と違って調べても出てこない。
42:デフォルトの名無しさん
11/12/24 23:52:02.25
せっかく「プリプロセッサ」という言葉を教えてもらったのに……。
43:デフォルトの名無しさん
11/12/24 23:55:45.47
>>42
ありがとうございます。
44:デフォルトの名無しさん
11/12/25 00:14:55.58
プリってどういう意味?
プリレンダリングとか
プリントとか。
45:デフォルトの名無しさん
11/12/25 00:35:25.39
>>44
"pre-"で英和を当たれ。
46:デフォルトの名無しさん
11/12/25 00:45:21.70
microsoft visual studio2008 で"fprintf"の勉強をしています。
"fprintf"でメモ帳やエクセルなどを多量に作っています。
出力先を変更したいのですが、数が多いので手間と時間がかかってしまいます。
コードを一括に変更する方法がありましたら、ご教授をお願いいたします。
47:デフォルトの名無しさん
11/12/25 01:27:09.25
つ[リファクタリング]
そろそろC++に移行する時期だな
出力専用クラスを作れば楽々
48:デフォルトの名無しさん
11/12/25 01:37:51.79
すげぇな、エクセルを作っているのか。それも大量に。
49:デフォルトの名無しさん
11/12/25 03:21:48.58
>28
>>26
>char *character;
>
>character='c';
型が合わない(ポインタ変数に数値(文字コード)入れちゃダメ)。
>char* characterkansu(char *x)
>{
>x='d';
>}
*x='d';
ならこの行でエラーは出ない。
だがchar *の値を返す関数として定義されてるのにreturnが無いのがいけない。
値を返す必要が無いならvoidにする。
50:デフォルトの名無しさん
11/12/25 03:35:30.70
#include<stdio.h>
void change(char* x);
int main(void)
{
char *character;
*character='c';
}
void change(char *x)
{}
コンパイル成功、実行stackエラー
51:デフォルトの名無しさん
11/12/25 03:39:01.56
「プロセッサ」って言い方が気持ち悪い。
セッサってw
プロセッスとか言わないのに。
「投げキッス」みたいな?w
52:デフォルトの名無しさん
11/12/25 03:40:17.78
#include<stdio.h>
void change(char* x);
int main(void)
{
char *character;
char word;
word='c';
character=word;
}
void change(char *x)
{
}
これはコンパイルエラー。。。。
53:デフォルトの名無しさん
11/12/25 03:46:49.22
>>50,52
おまえアホだろ
ポインタは「メモリ領域のアドレスを指す変数」なのだから、まずポインタがどのメモリ領域を指すのか初期化しないとダメ。
> *character='c';
初期化されていないポインタ character の指すメモリ領域に 'c' を代入してる。
どこかわからんアドレスにアクセスするのだから実行時に落ちても文句言えない。
>character=word;
式の左辺と右辺で型が異なる。
54:デフォルトの名無しさん
11/12/25 03:47:33.14
>>50>>52
何をやってんの?
いや、何をやりたいのか?と聞いた方がいいか
55:デフォルトの名無しさん
11/12/25 03:48:18.25
>>53
int a;
int *b;
b=&a;
int aa[10];
int *bb;
b=aa;
何故?
56:デフォルトの名無しさん
11/12/25 03:55:54.37
#include<stdio.h>
void change(char* x);
int main(void)
{
char *x;
x=NULL;
*x='c';
}
void change(char *x)
{
}
初期化したけど、コンパイル→成功、実行→スタックエラー
57:デフォルトの名無しさん
11/12/25 03:59:19.86
>>56
やっぱおまえアホだろ。ヌルポインターについてちゃんと読んでこい。
URLリンク(www.kouno.jp)
58:デフォルトの名無しさん
11/12/25 04:01:09.33
#include<stdio.h>
void change(char* x);
int main(void)
{
char *x=0;
*x='c';
}
void change(char *x)
{
}
スタックエラー
59:デフォルトの名無しさん
11/12/25 04:02:36.70
>>58
「どこも指していない」ことが保証されたポインタの指すメモリ領域に対して代入を行おうとしたんだから、
そうなるのが当然。
それがあなたのやりたかったことなのか?
60:デフォルトの名無しさん
11/12/25 04:04:35.88
>>49
の
*x='d';
ならこの行でエラーは出ない。
に従いましたが...
どこが間違えてるでしょうか?
61:デフォルトの名無しさん
11/12/25 04:05:36.12
>>60
あなたが何をしたかったのか分からないけど、プログラムはあなたの書いたとおりに動いているよ。
62:デフォルトの名無しさん
11/12/25 04:06:39.93
>>59
char*型で作った変数aの中身を関数によって変えたいです。
char *a;
関数の戻り値はvoid
63:デフォルトの名無しさん
11/12/25 04:08:39.93
>>62
もしmain関数がその関数を呼び出したいのなら、
変更されるメモリ領域をその関数に対して提示するべきだよな?
main(){
char c;
change( &c );
//FIXME: 変数cの内容を表示して、変更されたことを確認できるようにする
}
64:デフォルトの名無しさん
11/12/25 04:13:28.57
形式的に
char *x;
空
*x='c';
でエラーでない時って
空の部分どうしたらいいですか?
65:デフォルトの名無しさん
11/12/25 04:24:38.99
>>64
xの内容がヌルポインタだったかどうかチェックを入れて、もしそうなら呼び出し側にエラーを返す。
どのような形式でエラーを返すかはあなたが決めること。
また、ヌルポインタであることが「ありえない」と断言出来る場合にはアサートを入れて
開発版ビルドでのみチェックが行われるようにする開発手法もある。
URLリンク(www.geocities.jp)
66:デフォルトの名無しさん
11/12/25 04:25:58.54
char *x;
char d;
d='a';
x=&d;
*x='c';
答えは&ですね。
&以外だと絶対実行エラーでますね..
ありがとうございました。
67:デフォルトの名無しさん
11/12/25 08:03:15.23
>>66
&以外でも出ません。
68:デフォルトの名無しさん
11/12/25 09:08:01.15
char * x;
char d[1];
d[0] = 'a';
x = d;
* x = 'c';
69:デフォルトの名無しさん
11/12/25 09:37:04.49
>>31
さんくす。
とりあえず片っ端から勉強してみる。
70:デフォルトの名無しさん
11/12/25 11:28:14.75
総相 川端達夫 帰化人。 在日韓国人法的地位向上議員連盟
法相 平岡秀夫 帰化人。 在日韓国人法的地位向上議員連盟
文科相 中川正春 在日韓国人法的地位向上議員連盟
厚労相 小宮山洋子 帰化人。 在日韓国人法的地位向上議員連盟 自身の選挙区の太平建設と談合
国家戦略相 古川元久 パチンコ協会政治アドバイザー
韓国人から賄賂を貰っている野田
韓国人の集いに参加している野田
野田は日本人じゃないだろ
71:デフォルトの名無しさん
11/12/25 11:46:03.01
>>68
配列の場合&いらんのか?ややこしいな...
関数で渡すならなおさらややこしい。
72:デフォルトの名無しさん
11/12/25 11:56:40.70
下記URLに秀丸のDLLの作り方が書かれているのですが
これをVCで作る場合のdllのコンパイルの仕方をご教示おねがいします
URLリンク(homepage3.nifty.com)
73:デフォルトの名無しさん
11/12/25 11:57:19.27
>>71
配列は、[ ] の数が合っていれば値を、
足りなければ配列のある場所を返すからな
74:デフォルトの名無しさん
11/12/25 12:17:06.85
>>72
プロジェクトの構成の種類を ダイナミックライブラリ (.dll) にするだけだと思うが…
75:72
11/12/25 12:27:25.61
>>74先生ありがとうございます
まじすか
やってみたのですがうまくいかず難しいです
もしよろしければgithubにhelloworldを返すdllのソースコードを公開していただけないでしょうか?
76:デフォルトの名無しさん
11/12/25 12:29:35.58
>>75
クレ厨死ね
77:デフォルトの名無しさん
11/12/25 12:38:22.25
>>75
>やってみたのですがうまくいかず難しいです
何をやって、どううまくいかないか書けよ。
て言うか、
char* SampleFuncStr() {
static char sz[100];
strcpy( sz, "test" );
return sz;
}
ぐらいは試したのか?
78:デフォルトの名無しさん
11/12/25 12:38:34.81
>>47
ありがとうございました。
「クラス」がすごく重要なんですね。
そこをしっかりと勉強します。
79:72
11/12/25 12:49:00.23
>>77
コンパイルしてみたらVCの下の画面にエラーが出てしまいます
80:デフォルトの名無しさん
11/12/25 12:53:26.48
>>72
エラーメッセージも読めないレベルの人なら、先に普通のアプリが作れるようになってからDLLとか書いた方がいいよ
81:デフォルトの名無しさん
11/12/25 13:15:23.36
>>79
>コンパイルしてみたらVCの下の画面にエラーが出てしまいます
>> どううまくいかないか (=エラーの内容ぐらい) 書けよ。
82:デフォルトの名無しさん
11/12/25 14:02:41.47
URLリンク(ist.ksc.kwansei.ac.jp)
このプログラム何ですが、実行エラーが出るのですが何故ですか?
皆さんはでますか?僕が間違ってるのでしょうか?
60
3
1
2
.
.
59
60
というテキストファイルを読み込みのために作りました。
コンパイルはエラーがないものの、実行時Segmentation faulが表示されます。
83:72
11/12/25 14:16:31.59
すいませんエラーはこれです
>プログラム 'D:\source\vc++\Projects\HelloWorld\Debug\HelloWorld.dll' を開始できません。
84:デフォルトの名無しさん
11/12/25 14:24:30.42
HelloWorld.dllを実行しようとしてる?
85:72
11/12/25 14:34:08.22
F5を押してdllを作ってます
ソースコードを載せるので添削お願いします
■hello.def
LIBRARY hello
EXPORTS
SampleFuncStr
■hello.h
extern int SampleFunc();
■hello.cpp
#include <string.h>
char* SampleFuncStr() {
static char sz[100];
strcpy( sz, "test" );
return sz;
}
86:デフォルトの名無しさん
11/12/25 14:48:46.32
>>82
>n = 60
>A = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
>3-th smallest element = 3
こういう出力が出てきて、正常に実行出来た。
関数selectの名前だけ変えたが。
87:デフォルトの名無しさん
11/12/25 14:52:36.32
>>83
>>プログラム 'D:\source\vc++\Projects\HelloWorld\Debug\HelloWorld.dll' を開始できません。
ちゃんと >>74 やった?
88:デフォルトの名無しさん
11/12/25 15:04:35.36
>>87
プロジェクト作るときにやりました
defファイルもプロパティのモジュール定義ファイルにファイル名を書きました
またプロジェクトを作り直してF5ボタンでデバッグをやったらさっきのエラーと別に新たに↓のエラーがでました
>HelloWorld.exp : warning LNK4070: .EXP 内の /OUT:hello.dll ディレクティブの指定が出力ファイル名 'D:\source\vc++\Projects\HelloWorld\Debug\HelloWorld.dll' と異なっています。ディレクティブは無視されます。
ソリュージョンのビルドをやると以下の1行しか表示されなくなりましたがdllが作られませんでした
========== ビルド: 0 正常終了、0 失敗、1 更新不要、0 スキップ ==========
89:デフォルトの名無しさん
11/12/25 15:16:36.69
>>86
それでもスタックエラー出ましたが。
どうしてなんでしょうか....
文書作成ソフトはNotepadです。
3
2
1
2
3
↑
この5行が中身なんですが、
要素数が3 pが2 要素が1 2 3です。
90:デフォルトの名無しさん
11/12/25 15:25:50.36
>>89
実行環境は?
OSとコンパイラ名、それぞれのバージョンも
91:デフォルトの名無しさん
11/12/25 16:21:23.16
>>90
txt保存のとき"ファイル名"でOKでした。
他に自分が、k=l;のところをk=1;でした。
ちなみに、s.cというファイルを作ったとしたら
勝手にs1.cみたいに数字付きファイルが作られている事があるのですが
何故ですか?
92:デフォルトの名無しさん
11/12/25 16:21:48.04
これは必見
フジテレビ 生放送中に有志による怒りの抗議 (昨夜) (コメント欄に反日工作員が紛れているので注意)
URLリンク(www.nicovideo.jp)
93:デフォルトの名無しさん
11/12/25 16:26:56.17
>>91
お前解決する気ないだろ
94:デフォルトの名無しさん
11/12/25 16:27:52.71
>>93
解決しました、ありがとうございます。
95:88
11/12/25 16:44:52.34
どうかたすけてください
96:デフォルトの名無しさん
11/12/25 16:59:39.30
>>95
できてんじゃないの。
ない?
97:デフォルトの名無しさん
11/12/25 17:02:41.25
URLリンク(7ujm.net)(真ん中)
このページを参考に現在時間を取得しました。
10分後の時間を取得したいのですが、どのようにしたらよいでしょうか。
以下のように行ったところうまくいきませんでした。
sprintf(buff,"%d:%d:%d",pnow->tm_hour,pnow->tm_min+10,pnow->tm_sec);
結果、16:64:55
これを、17:4:55とでるようにしたいです。
98:88
11/12/25 17:06:25.11
>>96
debugのところにはdllがあるんですけどソリュージョンでビルドをやったときにdllが作れませんn
99:デフォルトの名無しさん
11/12/25 17:08:17.41
>>97
nowに10分足してからlocaltimeすればいんじゃね?
100:デフォルトの名無しさん
11/12/25 17:10:59.64
>>97
now += 10*60;
101:デフォルトの名無しさん
11/12/25 17:12:54.79
10年前にこの地球が存在していたことを証明するには
どこで計算ができますか?
102:デフォルトの名無しさん
11/12/25 17:15:54.70
仮にこの地球が本物ではないのだとしたら
あなたはいったい誰なんですか?
103:デフォルトの名無しさん
11/12/25 17:16:27.61
登大遊さんが1日に1万行ソース書いたとかいうエピソード見ましたが
凄くないですか?
104:デフォルトの名無しさん
11/12/25 17:17:58.17
書くだけなら猿でもできるし
105:デフォルトの名無しさん
11/12/25 17:18:56.42
1万行はすごいけど、5000行程度なら普通にいるよな。
つまり、すごい人は普通の人の2倍の能力を持つ。
106:デフォルトの名無しさん
11/12/25 17:19:29.23
URLリンク(d.hatena.ne.jp)
↑
一ヶ月数百行???
helloworld出力のソースだけで、 5,6行あるんだが...
やっぱ職業プログラミングってhelloworldと違って複雑で難しいのかな。
107:デフォルトの名無しさん
11/12/25 17:22:10.03
>>105
頭の良さってペーハー的に位置づけるらしいですね。
イメージだと、オイラーが10としたら,アインシュタインが8,シャノンが4くらいかな?
登大遊さんはどれくらいだろう。
少なくとも、彼程の天才今の大学生にいないでしょう。
周り見回しても。
108:デフォルトの名無しさん
11/12/25 17:24:11.85
5000行の内何割くらいがアルゴリズムなんだろう....
109:デフォルトの名無しさん
11/12/25 17:31:58.95
いまどき行数やステップ数で考える人がいるなんて。
110:デフォルトの名無しさん
11/12/25 17:33:46.75
>>109
発注主がそうだと、しかたがないよね
111:デフォルトの名無しさん
11/12/25 17:34:04.84
全くの0から自分の知ってる分野のプログラムを書くなら早いだろうけど
例えば今からEclipseのプラグイン作ってって言われて全く経験ない状態から24時間以内に5000行書いてみろよと
112:デフォルトの名無しさん
11/12/25 17:35:16.45
行数抜きに考えることもまた難しい。
113:デフォルトの名無しさん
11/12/25 17:35:40.83
>>109
ほかに物差しが無いんだから仕方ないだろ。
行数だしとけばお金が引き出せるんだから
むしろ積極的に利用した方がお手軽だぜ。
114:デフォルトの名無しさん
11/12/25 17:40:00.31
#\
i\
n\
c\
l\
u\
d\
e\
とかやったらhello worldで60行くらいいけるな
115:デフォルトの名無しさん
11/12/25 17:44:09.44
Ruby みたいのだと格安になっちゃうな。
116:デフォルトの名無しさん
11/12/25 17:52:38.05
プログラミング環境としてはノートとデスクトップのどっちが
良いですか?やっぱりノートですか?速いし。
117:デフォルトの名無しさん
11/12/25 17:57:11.33
個人で使いやすいもの使っとけよ
118:デフォルトの名無しさん
11/12/25 18:00:13.22
Desktopだと疲れない?
119:デフォルトの名無しさん
11/12/25 18:04:12.63
デスクトップよりタワーの方がいいよ。
120:デフォルトの名無しさん
11/12/25 18:04:16.58
コーダーの上がプログラマの上がシステムエンジニアの上は?
121:デフォルトの名無しさん
11/12/25 18:08:52.16
>>109
>いまどき行数やステップ数で考える人がいるなんて。
じゃあなんで考えるんだよ。
122:デフォルトの名無しさん
11/12/25 18:09:32.43
マジな話すると、ラップトップの小さい画面より、
デスクトップで大きなディスプレイ使って大きめの文字で設定するのが良いよ。
ディスプレイは、やや見下ろす位置に配置、
ブライトネスは暗めに設定、部屋の証明は消さない。
キーボードは体に近付けすぎない、肘が鈍角になる位置まで離す。
123:デフォルトの名無しさん
11/12/25 18:12:07.95
肘の位置重要だわ、死んだ人みたいに肘曲げて寝てる人いるけど、
あれありえないだろw疲れるw
124:デフォルトの名無しさん
11/12/25 18:45:07.82
平松サイド 橋下サイド
民主党 大阪市民(ナマポ、70代以上の大半を除く)
自民党
共産党
財界・関西電力
連合・自治労
日教組・公務員
毎日新聞・MBS
解放同盟・反日極左
朝鮮総連・韓国民団(野田の支持母体)
革マル派・中核派
125:デフォルトの名無しさん
11/12/25 21:04:36.56
ノートで仕事すると5時間で死ぬな
126:デフォルトの名無しさん
11/12/25 21:31:39.07
ITドカタやってて、今の現場はPC用意してくれなくて自分で持ち込みなんだけど、
でかいモニターを二つ持ち込んでるのって俺だけで、他はちっこいノートで作業してるから
浮いてて恥ずかしいわ。
eclipseとかあんなちっこい画面でよく使えるわ。
127:デフォルトの名無しさん
11/12/25 21:46:10.86
void MergeSort(int x[ ], int left, int right)
{
int mid, i, j, k;
if (left >= right) /* 配列の要素がひとつなら */
return; /* 何もしないで戻る */
/* ここでは分割しているだけ */
mid = (left + right) / 2; /* 中央の値より */
MergeSort(x, left, mid); /* 左を再帰呼び出し */
MergeSort(x, mid + 1, right); /* 右を再帰呼び出し */
/* x[left] から x[mid] を作業領域にコピー */
for (i = left; i <= mid; i++)
temp[i] = x[i];
/* x[mid + 1] から x[right] は逆順にコピー */
for (i = mid + 1, j = right; i <= right; i++, j--)
temp[i] = x[j];
i = left; /* i とj は作業領域のデーターを */
j = right; /* k は配列の要素を指している */
for (k = left; k <= right; k++) /* 小さい方から配列に戻す */
if (temp[i] <= temp[j]) /* ここでソートされる */
x[k] = temp[i++];
else
x[k] = temp[j--];
}
/* ソートされるデータ */
int x[ ] = {9, 4, 6, 2, 1, 8, 0, 3, 7, 5};
MergeSort(x, 0, MAX_DATA - 1);
これトレースして教えてくれ
再帰の部分がいまいちわからん
128:デフォルトの名無しさん
11/12/25 21:47:14.86
URLこれな URLリンク(www1.cts.ne.jp)
再帰の部分はどうやって処理するのかが不明
129:デフォルトの名無しさん
11/12/25 21:59:52.95
>>128
説明かいてあるじゃん
130:デフォルトの名無しさん
11/12/25 22:05:38.75
トレースお願い
131:デフォルトの名無しさん
11/12/25 22:34:12.19
エレガントにな。
132:デフォルトの名無しさん
11/12/25 22:38:19.51
ソーと関数の変数定義の後にこれ突っ込んどけ
static int n;n++;printf("呼び出し回数:%d left:%d right:%d\n",n,left,right);
133:デフォルトの名無しさん
11/12/25 22:53:24.54
>>126
持ち込みPCって、情報漏洩(会社、個人とも)でヤバイんじゃないの?
134:デフォルトの名無しさん
11/12/25 23:00:52.06
>>106
試行錯誤の結果行数かもしれない。
あと変幻自在の謎仕様、レガシーコード渡されて「ちょこっと変更すれば出来るだろ?」→解読に数日、とかも。
135:デフォルトの名無しさん
11/12/25 23:11:51.69
mid = (left + right) / 2; /* 中央の値より */
MergeSort(x, left, mid);
MergeSort(x, mid + 1, right); /* 右を再帰呼び出し */
上のMergeSortを呼び出し終わったらどうするの?
最初0,9を渡して、割っていくんですが0,4 0,2 0,1 0,0
そして次のMergeSort(x, mid + 1, right); /* 右を再帰呼び出し */
わかりません
136:デフォルトの名無しさん
11/12/25 23:26:04.04
例えば猫が愛らしい猫なで声で鳴けるのは
猫自身が努力をして試行錯誤を繰り返した結果獲得したのではなく
単にもともと愛らしい猫なで声を身に付けて生まれてきた猫だけが人間に餌を貰えて子孫を残すことが出来たというだけで
愛らしい猫なで声を持たずに生まれてきた猫は人間に餌を分けてもらえず餓死して絶滅したというだけ
生物の進化というのはこういうことを言う
要するに駄目な奴は努力しても無駄だから死ねということ
137:デフォルトの名無しさん
11/12/25 23:29:54.28
確かに努力しても無駄だと思わせる文章だ。
138:デフォルトの名無しさん
11/12/25 23:34:11.41
努力しても無駄な人が書いた文章の見本になるな
139:デフォルトの名無しさん
11/12/25 23:41:52.70
自己解決しました
140:デフォルトの名無しさん
11/12/26 01:22:56.93
そういえばソースの良し悪しを決めるソフトとかってないの?
141:デフォルトの名無しさん
11/12/26 01:48:52.82
こういうのか?
URLリンク(www.aicp.co.jp)
142:デフォルトの名無しさん
11/12/26 07:33:02.75
うん
143:デフォルトの名無しさん
11/12/26 10:14:55.02
hello worldを表示するだけのプログラムのexeが50KBもあるのはなぜでしょうか?
C#だと10Kb以下ですが
144:デフォルトの名無しさん
11/12/26 10:35:31.44
ワイルドカード展開するためのプログラムとか入ってるからな。
145:デフォルトの名無しさん
11/12/26 10:46:45.28
URLリンク(www1.cts.ne.jp)
このマージソートがどうしてもわかりません
トレースはどのようになってるのでしょうか?
0 4
0 2
0 1
0 0で MergeSort(x, left, mid); /* 左を再帰呼び出し */0 0を呼び出した後
void MergeSort(int x[ ], int left, int right)
{
int mid, i, j, k;
if (left >= right) /* 配列の要素がひとつなら */
return; /* 何もしないで戻る */
/* ここでは分割しているだけ */
mid = (left + right) / 2; /* 中央の値より */
MergeSort(x, left, mid); /* 左を再帰呼び出し */
MergeSort(x, mid + 1, right); /* 右を再帰呼び出し */
returnで何もしないで戻ったら次の MergeSort(x, mid + 1, right); /* 右を再帰呼び出し */を呼び出すのでしょうか?
146:デフォルトの名無しさん
11/12/26 10:48:30.25
MergeSort(x, left, mid); /* 左を再帰呼び出し */
MergeSort(x, mid + 1, right); /* 右を再帰呼び出し */
ここの下からの処理はいつ実行されるのでしょうか?
ずっと再帰でループしてるように思えますが
147:デフォルトの名無しさん
11/12/26 10:49:52.63
>>143
clつかってるのなら、/MDつければ小さくなるよ
148:デフォルトの名無しさん
11/12/26 10:54:11.06
>>145
なんかどっかのすれでも見た気がするけど、returnしてるところで終わる
149:デフォルトの名無しさん
11/12/26 11:01:17.75
>>148
4回目でMergeSort(x, left, mid); これに0,0入れてますよね?
最初に0,9を入れてMergeSortを呼び出して mid=(left+right)/2
0 9
0 4
0 2
0 1
0 0
if (left >= right) return;
つまり 0>=0でreturnなんですが
このreturnを実行したらどうなるのでしょうか?
0 1が返されるのでしょうか?
このreturnがどこに返されるのかがわかりません
0 1を返してまた実行すると mid=(left+right)/2で mid=0
MergeSort(x, mid + 1, right); /* 右を再帰呼び出し */
ここに入れる?わかりませんが 1 1と呼び出す いまいちわかりません
具体的に流れを教えてくれる方はいませんか?
150:デフォルトの名無しさん
11/12/26 11:10:58.90
>>149
MergeSort(外側)のなかで呼び出したMergeSort(内側)がreturnすると、MergeSort(内側)のところに戻るので、その続きをする
151:デフォルトの名無しさん
11/12/26 11:13:20.73
>>143
perl だと
たった20バイト程度だぞ。
152:デフォルトの名無しさん
11/12/26 11:14:42.69
外側のMergeSortの変数は、内側のMergeSortの変数に影響をあたえないし、逆もしかり。
これはスタックという仕組みで実現されている。
もう少し簡単な再帰から練習したほうがいい。
void recursive_test(int i)
{
if (i > 0) {
recursive_test(i - 1);
}
return;
}
こういうので、いろんなところにprintf入れてみるとかで。
153:デフォルトの名無しさん
11/12/26 11:16:41.16
>>151
斜めすぎだろ。
>>147書いたけど、それにつづけて小さいスタブに変えたらもっと小さくなるとか、せめてそういう方向でたのむわ。
154:デフォルトの名無しさん
11/12/26 11:18:17.75
>>151
まじすか
俺の負けです
ちょっと今/MDつけてみたら6KBになりました
これすごいですね
/MDについて聞いたら怒られそうなので自分で/MDについて調べてみてこのページを見つけました
URLリンク(msdn.microsoft.com)(v=vs.80).aspx#
つまりこれは実行する環境にlibcpmt.libとmsvcprt.libとmsvcrt.libが入っていないと動かないということですか?
一般的なソフトは/MDつけてコンパイルされて配布されているものでしょうか?
155:デフォルトの名無しさん
11/12/26 11:18:21.21
URLリンク(codepad.org)
156:デフォルトの名無しさん
11/12/26 11:36:58.50
>>154
実行する環境にmsvcrt.dllが入ってないと動かない(そのlib群は不要)
んで、それはある程度新しいWindowsなら標準で入ってる
一般的なソフトがどうであるかは知らない
157:デフォルトの名無しさん
11/12/26 11:38:18.62
なるほど勉強になりました
158:デフォルトの名無しさん
11/12/26 11:39:06.90
ある程度新しいというのが気になるかもしれないけど、
ここ10年くらいのWindowsはこれに含まれる。
159:デフォルトの名無しさん
11/12/26 11:43:53.16
MergeSortの回答ありがとうございます
参考にして見ます
160:デフォルトの名無しさん
11/12/26 11:44:28.14
>151
バッチファイル
echo hello world
改行無しで16バイト。
BASICなら中間コード化でさらに小さく。
161:デフォルトの名無しさん
11/12/26 11:49:13.67
>>154
VCで作ったプロジェクトだと、デフォのスイッチに含まれてるから、大半はついていると思っていい
162:デフォルトの名無しさん
11/12/26 11:49:14.54
>BASICなら中間コード化でさらに小さく。
行番号で2バイト、
PRINTの中間コードが・・・2バイトか?
hello worldで11バイトだか、文字数とか範囲指定とか必要だろうからさらに数バイト。
16バイトより小さくはならんだろ。
163:デフォルトの名無しさん
11/12/26 12:08:14.58
Hコマンド最強。
164:デフォルトの名無しさん
11/12/26 12:13:02.69
Hボタン連打
165:デフォルトの名無しさん
11/12/26 12:26:32.71
連打ッス!
166:デフォルトの名無しさん
11/12/26 14:05:35.06
マージソートって難しくない?
再帰普段使わないし
見たけど難しいな
167:デフォルトの名無しさん
11/12/26 14:19:20.24
mySQLを扱う際に、whereを用いて制限をかけようと思うのですが、
セグメンテーション違反になってしまいます。
a=3;
if(mysql_query(connect,"select * from テーブル where ID >"+a)){
変数を扱うところが原因だと思うのですが、
どのように直したらよいのでしょうか。
168:デフォルトの名無しさん
11/12/26 14:20:16.26
とりあえず基本的な理屈だけ覚えとけばいい。
どうせ実際に使う機会がある頃には記憶薄れて忘れちまってるからな。
169:デフォルトの名無しさん
11/12/26 14:33:08.55
>>167
select * from テーブル where ID > 数値 という文字列を渡すことを期待しているようだが
C言語で 文字列の連結は + で表せないぞ
十分に大きい文字配列 buf があるとして
sprintf(buf, "%s%d", "select * from テーブル where ID >", a);
mysql_uery(connect, buf);
こうなる
170:デフォルトの名無しさん
11/12/26 14:57:45.96
sprintf(buf, "select * from テーブル where ID > %d", a);
こっちの方がクエリパラメータっぽくていいかもしれんね。
171:デフォルトの名無しさん
11/12/26 15:03:35.41
パラメータ中に printf フォーマット文字が入ったらいやーんな感じなので %s で受けるようにたけど
例題中じゃ出てこないから 後者で十分だったようだね
172:デフォルトの名無しさん
11/12/26 15:22:58.52
一番初心者向きのC環境何ですか?
簡単なグラフィックが利用できたらいいなと思っています。
例えば、黄色い四角形を出力するプログラムとか作りたいです。
図書館でC関係のグラフィック関係の本漁りましたがWindows以前(1995年より前)
の本が7割くらいで……
173:デフォルトの名無しさん
11/12/26 15:26:02.93
likeを使うとしても、%を含めてリプレイスするのが一般的だから、入ることはないかと。
174:デフォルトの名無しさん
11/12/26 15:26:06.69
>>172
Turbo-C 2.01
175:デフォルトの名無しさん
11/12/26 15:28:09.67
>>172
Visual C++ & glut
176:デフォルトの名無しさん
11/12/26 15:35:13.40
今連結リストの方方向リストを使って入力した値をいれてっれ中央値を表示させようとしてるんですが、どうやって値をソートすればいいのでしょうか?
バブルソート使って、値が入力された時にソートしようとしているのですが、どうしてもできません。よろしくお願いします。
177:デフォルトの名無しさん
11/12/26 15:38:32.35
できますよ。
178:デフォルトの名無しさん
11/12/26 15:38:37.06
>>174
>>175
ありがとうございます。参考になりました。
179:デフォルトの名無しさん
11/12/26 16:14:58.06
>>176
何ができないのか具体的に書け。
ソース全く出さずに、1から全部書いてもらおうとしているのか?
180:デフォルトの名無しさん
11/12/26 16:16:54.64
>>179
どう考えても1から全部書いてもらおうとしてると思うけど、どう考えても質問に答えてもらえるとは思えない
181:デフォルトの名無しさん
11/12/26 16:18:12.85
ここで>>180を覆す回答者が!CMの後で!
182:デフォルトの名無しさん
11/12/26 16:22:42.90
, - , -─ - 、
/:::::::::::::::::::::::::::::::::`‐、
/::::::::::::::::::::::::::::::::::::::::::::::\
/::::::::::;:ィ::::::::';:::::::::::`ヽ::::::::::::::ヽ
,'::::::;':::/ l:::i::::::ヽ:::\:::::::';:::::::::::::::',
i:::l::::i:/ ';:::';:::::::',\::ヽ:::::::::::☆:::
l::l::;イ__, ヽ、ト、::::ヽ、\:',ヽ〃l:::::: >>176さん
';l l::l ` ‐- l:::::l:::::: こ、ここ、これ読んで下さいっ!
l::::l == 、 ,.ィ== l:::::l:::::::::
l:::::li //////////// l:::::l::::::::::
, -ーl::::lヽ、 r....::´`ヽ /l:::;'> 、:::::
, -ー 、'´`ヽl::::l// ` ‐-r‐ァ' ´ ,':/ー、 ';
/ , ノ ` l::::l li /ニく /⌒ヽ \.i
, └ '´  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ / ノ__ ', ,イ:
/ \ (⌒⌒) , └ '´ / i/
/ ヽ / ー ' / /,.イ
∠ __ / / /
 ̄ ̄ ̄プ ー r─ -------/-‐'´ /
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
| |
| |
/  ̄ ̄ ̄ ̄ /_____
/ お断りします / //
/ ハ,,ハ / / /
/ ( ゚ω゚ ) / / /
/ ____ / / /
/ / / /
/ / / /
183:デフォルトの名無しさん
11/12/26 16:47:33.78
#include <stdio.h>
#include <time.h>
int main(void){
time_t t;
time(&t);
printf("%s", ctime(&t));
return 0;
}
を実行したら↓みたいになってエラーがでるんですけどこれはコードをどう直したらよいのでしょうか?
------ ビルド開始: プロジェクト: Test, 構成: Debug Win32 ------
test.c
d:\source\vc++\projects\test\test\test.c(7): warning C4996: 'ctime': This function or variable may be unsafe. Consider using ctime_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:\program files\microsoft visual studio 10.0\vc\include\time.inl(86) : 'ctime' の宣言を確認してください。
Test.vcxproj -> D:\source\vc++\Projects\Test\Debug\Test.exe
========== ビルド: 1 正常終了、0 失敗、0 更新不要、0 スキップ ==========
184:デフォルトの名無しさん
11/12/26 16:50:33.38
>>183
エラーじゃないよ。
警告 ctimeはあぶないのでctime_sを使ったほうがいいです。この警告がうっとうしかったら _CRT_SECURE_NO_WARNINGS を定義してくださいな。
ってかいてる。
185:デフォルトの名無しさん
11/12/26 16:57:08.62
ありがとうございます
書き方はこんな感じでよいでしょうか?
直すところがございましたらご指摘お願いします
#include <stdio.h>
#include <time.h>
int main(void){
time_t t;
char c[26];
time(&t);
ctime_s(c,sizeof(c),&t);
printf("%s",c);
return 0;
}
186:デフォルトの名無しさん
11/12/26 17:04:07.20
ctime_sとかってvisual studioのみでしか使用できないんじゃなかったっけ
つまり問題ないから直さなくていいって感じで記憶してるけど
警告がうっとおしいと思うなら_CRT_SECURE_NO_WARNINGSを定義するって感じで
187:デフォルトの名無しさん
11/12/26 17:06:45.42
値比較後の要素交換の記述
双方向のリストなら単純にいけそうだけど、単方向リストだと自分の1個前が欲しくなるから面倒
(ex. i番目 j番目の交換が発生 リスト繋ぎ変えでi-1 と j-1 が欲しくなる
188:デフォルトの名無しさん
11/12/26 17:10:14.02
他環境に移植できなくするためのMSの罠だよ。
189:デフォルトの名無しさん
11/12/26 17:16:22.88
visual studioとかvisual C++って無償?
190:デフォルトの名無しさん
11/12/26 17:28:03.88
ありがとうございます
セキュリティーコードということを検索して理解しました
メモリが汚れるのはいやなので警告をオフにしたいと思いますが
検索してURLリンク(sunrisebyeast.blogspot.com)にたどりついたのですが
#pragma warning(disable:4996)をtest.cの1行目に書いたんですが警告が消えません
僕が使ってるのはVC++2010なんですが2008念のバージョンじゃないとダメってことですよね?
今VC2008のバージョンがないので探しているのですが見当たらず、2010でも警告を消す方法ってございませんか?
191:デフォルトの名無しさん
11/12/26 17:38:12.54
すいませんプロパティのプリプロセッサに_CRT_SECURE_NO_WARNINGSを書いたら出来ました
URLリンク(tiano.cocolog-nifty.com)を参考にしてできました
192:デフォルトの名無しさん
11/12/26 17:51:17.46
>>189
無償版もある。てかそれくらいはぐぐってください
193:デフォルトの名無しさん
11/12/26 18:07:11.17
実行すると tarou.name = "tarou";の部分で
error C2106: '=' : 左のオペランドが、左辺値になっていません。
ってエラーがでます
どこが問題でしょうか?
#include <stdio.h>
struct profile {
int age;
char name[10];
int sex;
};
int main(void){
struct profile tarou;
tarou.age = 21;
tarou.name = "tarou";
tarou.sex = 0;
printf("%d - %c - %d", tarou.age, tarou.name, tarou.sex);
}
194:デフォルトの名無しさん
11/12/26 18:23:32.71
strcpy()使え
195:デフォルトの名無しさん
11/12/26 18:37:32.17
>>194
strcpy使ったら出来ました
なんでstrcpy使わないとだめなのですか?
196:デフォルトの名無しさん
11/12/26 18:47:36.17
せめて入門書の一冊も読んでからにしてくれないか?
197:デフォルトの名無しさん
11/12/26 18:48:31.78
struct profile tarou = {21, "tarou", 0}なら出来るとおもう
198:196
11/12/26 18:52:20.68
言い過ぎたごめん
199:デフォルトの名無しさん
11/12/26 18:53:20.28
tarou.nameはポインタだから、そのプログラムだと初期化するかstrcpyするかじゃない
ユーザーに入力を促すようなものだとscanfつかって出来る
200:デフォルトの名無しさん
11/12/26 18:54:05.41
あと%cじゃなくて%sね
201:デフォルトの名無しさん
11/12/26 18:57:45.25
>>199
勘弁してくれ
202:デフォルトの名無しさん
11/12/26 19:03:04.04
ああ、tarou.name[0] = 't';って一つ一つ入力する方法あるか
203:デフォルトの名無しさん
11/12/26 19:10:37.55
初心者スレなのに適当なことばかり。
204:デフォルトの名無しさん
11/12/26 19:11:25.98
>>199
tarou.nameは確かにポインタを生み出すコードではあるけれど、tarou.nameは配列と言うべきタイミングだろ。
ということを>>201が言いたいんだろうので同意。
205:デフォルトの名無しさん
11/12/26 19:15:03.11
って置いてけぼりにするところだった。
>>195
一般に、配列(文字列=文字配列)に配列を代入することはできないため。
それをしたい場合は、memcpy、特に文字列をコピーしたい場合にはstrcpyを使う。
初期化の場合は別だし、構造体でラッピングしたものを利用して代入を行うこともできるけれど、それは後から覚えればいい。
206:デフォルトの名無しさん
11/12/26 19:25:01.72
リテラルを書き換えられない設計にしてるのがおかしい
207:デフォルトの名無しさん
11/12/26 19:26:59.45
× ポインタ
○ ポインター
208:デフォルトの名無しさん
11/12/26 19:28:04.87
JISはまだ変わってなかろ。
209:デフォルトの名無しさん
11/12/26 19:34:11.15
JASに従えよ。
210:デフォルトの名無しさん
11/12/26 19:37:38.30
tarou.nameは配列の先頭要素へのポインタであって配列ではないよね
211:デフォルトの名無しさん
11/12/26 19:43:38.03
>>210
構造体のメンバ名だよ。って返せばいいのか?何をしたいのかわからん。
212:デフォルトの名無しさん
11/12/26 19:44:41.11
struct {
char *taro;
char hanako[10];
};
213:デフォルトの名無しさん
11/12/27 00:50:37.68
>>210
tarou.name自体は配列
ポインタとして解釈される場合に配列の先頭要素へのポインタに変換されるだけ
sizeof(tarou.name)の結果を考えてみろ
214:デフォルトの名無しさん
11/12/27 00:59:09.61
そりゃ型が違うだけ。
char[10]型ってことだろ。
215:デフォルトの名無しさん
11/12/27 00:59:53.58
テトリス作りたいのだが、time関数はいるわけ?
テトリスが落ちる時間ってtime関数だよな?
216:デフォルトの名無しさん
11/12/27 01:02:19.02
mySQLって具体的にどんな用途があるの?
聞いたことあるけどイマイチ利便性が分からない。
217:デフォルトの名無しさん
11/12/27 01:09:53.98
>>216
データ管理で重宝してる。
機能をCで一から組んだら大変だと思う。
218:デフォルトの名無しさん
11/12/27 01:24:24.37
>>217
は?ライブラリみたいな?
219:デフォルトの名無しさん
11/12/27 01:27:59.19
組み込み用途ならSQLiteのほうが使い勝手はいいよ
220:デフォルトの名無しさん
11/12/27 01:40:04.03
テレビとかイメージでも会社でパソコン打ってる風景って良く見るけど、
あいつらってプログラム組んでるの?何してんだろ。
221:デフォルトの名無しさん
11/12/27 01:46:26.97
パソコン使う仕事って全部プログラミング?
222:デフォルトの名無しさん
11/12/27 02:07:02.67
プログラマ以外でずっとパソコンに向かってる仕事ってデザイナーとかCADとかのイメージがあるな
223:デフォルトの名無しさん
11/12/27 02:10:32.94
経理とか総務とかは思い浮かばないの?
224:デフォルトの名無しさん
11/12/27 02:14:45.19
丸一日向かい合うほど経理するとは想像できなくて
225:デフォルトの名無しさん
11/12/27 02:24:49.58
ホワイトカラーなら、今時はどんな職種でもPCに向かって仕事すんじゃねーの?
226:デフォルトの名無しさん
11/12/27 02:30:36.14
何をするのかがわからんってのに、向かうだろって言われてもなぁ。
ホワイトカラーでPCに向かわない職種なんてくさるほどあるし…
227:デフォルトの名無しさん
11/12/27 02:48:20.41
仕事せずに、サーフィンしてるのかもしれない
228:デフォルトの名無しさん
11/12/27 02:52:21.78
天皇さまですらPC使ってるのに
229:デフォルトの名無しさん
11/12/27 05:21:29.11
明らかにキーボードだけをカタカタカタカタしてるよな。
テンキーもマウスも使う素振りもない。
230:デフォルトの名無しさん
11/12/27 05:54:32.60
日がな一日書類を書いていたら殆どマウスに触る必要もないが、
一般事務職でそこまでショートカットに精通している奴は少ないと思う。
231:デフォルトの名無しさん
11/12/27 06:00:14.70
それはそうと、pthreadを使ったスレッドプールの手頃なサンプルないかな。
pthread_cond_wait()が意外に使い難くて参った。
232:デフォルトの名無しさん
11/12/27 06:48:49.97
引きこもりが熱く語る「僕の考えるパソコンを使った事務仕事」とか笑えるわ
233:デフォルトの名無しさん
11/12/27 07:17:16.15
>>232
>230のことを言っているなら、それを書いたのは会社員の私だ。
234:デフォルトの名無しさん
11/12/27 09:13:32.51
>>231
URLリンク(www.google.co.jp)
235:231
11/12/27 09:34:21.72
>>234
それで見つかるところは大抵最低限の使い方だけなんだよね。
この板のマルチスレッドのスレでも同じように梃子摺っている質問は幾つか見つかるのに、
具体的な回答が見つからないし。
236:デフォルトの名無しさん
11/12/27 13:10:19.29
具体的に何をしようとしてどうなったか書いてないと答えようがなくね?
237:デフォルトの名無しさん
11/12/27 15:56:47.40
>>215
clock()のほうが良いと思いmath
238:デフォルトの名無しさん
11/12/27 15:58:54.71
clock は精度が秒の環境もあるぞ。
239:デフォルトの名無しさん
11/12/27 16:53:33.36
WindowsならtimeGetTime()かQueryPerformanceCounter()を使うしな
time()はかなり機種依存的性格を持っている
240:デフォルトの名無しさん
11/12/27 16:57:23.48
DOSの時は走査線待ち。
241:デフォルトの名無しさん
11/12/27 18:31:40.69
ヒープソートを書いたのですが
URLリンク(codepad.org)
最後の20 10が整頓されません
どうすれば昇順になるのか教えてください
242:デフォルトの名無しさん
11/12/27 18:48:08.47
自己解決しました
for(i=N; i>2; i--)あるべきでした
243:デフォルトの名無しさん
11/12/27 19:11:58.83
C言語でこのスレに書き込めるプログラム教えてください
244:デフォルトの名無しさん
11/12/27 20:34:02.21
平松邦夫/民主党
大阪市役所・自治労・大阪市労働組合・日教組・大阪市教育委員会・自民党・共産党・社民党・関西電力・住友グループ
・毎日放送・毎日新聞・関西経済連合・日本原子力発電株式会社 ・ 週刊文春・週刊新潮・NHK・朝日新聞・読売新聞
・部落解放同盟・朝鮮総連・在日本大韓民国民団・日本遊技関連事業協会・全日本遊技事業協同組合連合会・日本弁護士連合会・生活保護受給者・反日左翼・9条の会・革マル派・中核派
VS
橋下徹/維新の会
大阪市民・みんなの党・国民新党・亀井静香・石原慎太郎・東国原英夫
様子見:公明
245:デフォルトの名無しさん
11/12/28 00:50:51.04
>243
URLリンク(www23.atwiki.jp)
適当に選べ。
246:デフォルトの名無しさん
11/12/28 10:17:50.61
Windowsでコンソールプログラムで右下にバルーンを表示させたいのですが
それだけのシンプルなほどシンプルな本当に登竜門なサンプルで公開してるページありませんか?
247:デフォルトの名無しさん
11/12/28 12:01:39.93
つくってみよう-タスクトレイアプリケーションの作成
URLリンク(www.alpha-net.ne.jp)
248:デフォルトの名無しさん
11/12/28 12:06:02.01
ダブルポインターのコピーについての質問です。
二次元配列の文字列をコピーしたいのですが、コピー元の二次元配列は
ヒープメモリの確保が必要になりますが、コピー先のメモリも動的に確保しようと
コメントアウトの部分を外すと、メモリエラー(ヒープの破壊)が起こりますが、
コメントアウトした状態の実装で、メモリの使い方は間違っていないでしょうか?
#include <stdio.h>
#include <stdlib.h>
char **getString();
char **strSrc;
int main()
{
char **strDst;
// コピーされる側はヒープメモリの確保は必要ないのか?
//strDst = (char **)malloc( sizeof(char * ) * 2 ) ;
strDst = getString();
printf("%s\n", strDst[0]);
printf("%s\n", strDst[1]);
free( strSrc );
//確保していないので、解放は当然不要なわけであるが・・・・
//free( strDst);
return 0;
}
char **getString()
{
strSrc = (char **)malloc( sizeof(char * ) * 2 );
strSrc[0] = "ABCD";
strSrc[1] = "1234";
return strSrc;
}
249:デフォルトの名無しさん
11/12/28 12:08:45.08
>>246
NOTIFYICONDATA NIF_INFO
でぐぐれ
250:デフォルトの名無しさん
11/12/28 12:15:53.20
再帰って関数内が終わったら自動でreturnされるの?
URLリンク(codepad.org) このコードみたんだけど
HeapSortの中に--reetcountってあるけど
関数の最後でreturnが自動で呼ばれてるんですか?
251:デフォルトの名無しさん
11/12/28 12:19:28.01
そう。
252:デフォルトの名無しさん
11/12/28 12:23:26.60
この場合戻り値がvoidなんですが
returnっていうより
最初の if (left >= right) {
--reentcount;
return;
}
で条件に引っかからず一番したの処理まできたら
自動で前の処理の再帰に戻すってこと?
returnって書けば戻るんだけど
終了には--reetcount(カウント数)だけだよね
自動で前の再帰に戻るの?
253:デフォルトの名無しさん
11/12/28 12:26:14.43
voidって値を返す必要がないのに
どうやって前の再帰に戻ってるんだろう
void HeapSortだけど
voidの場合でも関数終了時に再帰が残ってる場合は前の再帰に戻してくれるの?
254:デフォルトの名無しさん
11/12/28 12:27:37.30
いや、あたい返しても返さなくても仕組みは一緒だろ…
255:デフォルトの名無しさん
11/12/28 12:27:40.69
>>248
ポインタの基礎ができてない悪寒。
>248の場合、strDstにメモリ確保しても、それをgetString()の戻り値で上書きしてしまっている。
なので、free(strSrc)で解放したメモリ空間をfree(strDst)で更に解放しようとして異常終了している。
そもそも、何がしたいのか判らんが勉強中はグローバル変数は使うな。
256:デフォルトの名無しさん
11/12/28 12:28:33.27
>248
strSrcとstrDstが同じポインタ値になってる。
free( strSrc );
//確保していないので、解放は当然不要なわけであるが・・・・
free( strDst);
同じメモリを2回開放しようとしてる。
>strDst = (char **)malloc( sizeof(char * ) * 2 ) ;
>strDst = getString();
やるなら
strDst = (char **)malloc( sizeof(char * ) * 2 ) ;
memcpy(strDst,getString(),sizoef(char * ) * 2 ) ;
だろう。
257:デフォルトの名無しさん
11/12/28 12:30:12.51
>>253
例えばこういうコードがある。
--
void subFunc()
{
puts("subFunc()");
}
void someFunc()
{
puts("before sub");
subFunc();
puts("after sub");
}
--
このとき、どう出力されるかは判るかい?
258:デフォルトの名無しさん
11/12/28 12:34:08.14
before sub
subFunc()
after sub
ですか?
なんかひねって
before sub
1
after sub
だったりしそうですがわかりません
259:デフォルトの名無しさん
11/12/28 12:38:47.32
#include <stdio.h>
int main(void)
{
int i=1;
printf("%c\n",a());
return 0;
}
int a(){
}
これだと1って返されますね
void a()に変更するとコンパイルエラー
だけどcodepadの再帰はVoid型なのに関数ブロックの最後になったら前の再帰が返されてる
再帰はVoid型とか関係なくコードブロックの終了に返されるってこと?
260:デフォルトの名無しさん
11/12/28 12:43:06.17
>>258
値を返すとかなんだとかを脇において、処理がどう推移するかを考えろ。
1を出力しているところはどこにもないぞ。
261:デフォルトの名無しさん
11/12/28 12:53:17.58
>257の例で、処理がどう流れているかを処理される順番で表現してみた。
# main()はないが、someFunc()を呼んでいると仮定。
--
void subFunc() // 5
{ // 6
puts("subFunc()"); // 7
} // 8
void someFunc() // 1
{ // 2
puts("before sub"); // 3
subFunc(); // 4...9
puts("after sub"); // 10
} // 11
--
subFunc()の途中にreturn文があれば、こうなる。
--
void subFunc() // 5
{ // 6
return; // 7
puts("subFunc()"); // この文は実行されない。警告レベルを上げると警告されるはず。
} // 8
void someFunc() // 1
{ // 2
puts("before sub"); // 3
subFunc(); // 4...9
puts("after sub"); // 10
} // 11
--
これで判るかねぇ。
262:155
11/12/28 15:12:32.15
>>252
意図は MergeSort() の入り口でカウントアップ 出口でカウントダウン して、
再帰の深さがいくつになってるかを分かりやすくしたかっただけ
できるかぎり元ソースの形(>>145 リンク先)を維持したまま追加したので
途中脱出の部分で --reentcount してるけど
void MergeSort(int x[ ], int left, int right) {
/* ... */
++reentcount;
if (lest < right) {
/* 本体 */
}
--reentcount;
}
こういう記述にしたほうが良かったかな?
263:デフォルトの名無しさん
11/12/28 15:21:23.52
C言語で逆引きサンプルでいいサイトありませんか?
264:デフォルトの名無しさん
11/12/28 15:39:11.42
コンパイル時に、
% gcc -DHEX=12 a.c
とやって、ソースを
int hex = 0x12;
としたいのだけど、どう書けばいいんだっけ... ("0x"を追加したい)
int hex = 0x00##HEX;
じゃだめだよね..
265:デフォルトの名無しさん
11/12/28 15:55:16.80
VCでしか確認できてないけど、↓じゃだめ?
#define HEX_VAL(arg) 0x##arg
int hex=HEX_VAL(HEX);
266:デフォルトの名無しさん
11/12/28 15:59:39.30
それだとgccじゃだめなんだな...
って、確かgccはその書き方じゃダメだったような気がしてきた。
コンパイラ別にするのイヤだから別の方法で回避するわ。
267:デフォルトの名無しさん
11/12/28 16:11:10.19
ああ シンボルHEX の実体展開がなされるかどうか か
2段にすれば解決するんだっけ
#define HEX_VAL(arg) 0x##arg
#define HEX_V(arg) HEX_VAL(arg)
過去 スレリンク(tech板:139番),143
268:デフォルトの名無しさん
11/12/28 17:14:57.72
お前らマージソートを何も見ないでかける?
難しくない?再帰といい処理といい
マージソートなんて使う意味あるのか?
269:デフォルトの名無しさん
11/12/28 17:31:29.27
>>268
マージソートはクイックソートと同じO(NLogN)オーダーの速度を持ちながら安定なソート
だからstable_sort()に使われる
欠点としては多量の記憶域が必要な事と、クイックソートの約2倍の時間が掛かる
安定でなくてもいいならクイックソート、安定で速度が必要ならマージソート
270:デフォルトの名無しさん
11/12/28 17:33:47.68
ふうん
271:デフォルトの名無しさん
11/12/28 18:04:35.58
教科書に載ってるようなくらいのC言語しかしたことないんだけど
仕事でC言語って行ったらどんなことするの?
272:デフォルトの名無しさん
11/12/28 18:33:08.35
>>271
個人的な感想ですが、担当者レベルだと、ひたすら、
ビジネスロジックを設計(詳細設計)して書く、
そして、コーディング規則は現場によって違うけど、
厳しい方が後々良い。けど、書いているときはすごく面倒。
で、大体、テンプレート(見本のソース)を誰かが作ってくれて、
それを、自分のビジネスロジックに合わせて記述する。
ビジネスロジック意外の定番のロジックは大抵、
テンプレートを先輩が作っておいてくれるから、
C言語的には、基本は知っておけば良い。
っていうか、ポインタ程度の理解はすごい重要。
で、よほど、性能を優先する処理以外は、
「他の人がメンテナンスしやすい(理解しやすい)処理を書く」が
基本、というのが自分の大昔の大雑把な経験。
他の人(後任)が理解できない記述やロジックは嫌われる。
もちろん、処理速度を優先する場合は仕方ないけど・・・。
273:デフォルトの名無しさん
11/12/28 18:47:24.27
>>272
ポインタをどのくらいまで理解すればいいの?
274:デフォルトの名無しさん
11/12/28 18:55:07.18
ポインタを「このくらいは理解できた」なんてのは妄想。
理解できたか、理解できていないか、どちらかしか有り得ない。
面接で「ダブルポインタは大丈夫ですが、トリプルポインタは自信がありません」なんて
言っているような輩は、実際ポインタを理解できていない。
275:デフォルトの名無しさん
11/12/28 18:55:45.50
トリプルポインタなんて使う場面はほとんどないけどな
大抵ダブルポインタまで
276:デフォルトの名無しさん
11/12/28 19:14:22.51
ダブルポインタなんて言われた時点で「きっと理解できてないんだろうなぁ」と思っちゃう
この単語は使わない方がいい
277:デフォルトの名無しさん
11/12/28 19:33:09.97
そもそもそんな質問する面接があんの?
今時Cの仕事ってなにがあるんだろうか。
8bitとかのワンチップマイコンくらい?
278:デフォルトの名無しさん
11/12/28 19:34:00.92
パチンコ
279:デフォルトの名無しさん
11/12/28 20:22:22.00
■民主党政権になって放送禁止になった言葉一覧■
[道義的責任・進退問題・発言のブレ・閣内不一致・派閥・プライマリーバランス
空気が読めない・庶民感覚・国民目線・バラマキで人気とり・国民に信を問うべき・OECDの貧困率
ワーキングプア・ネットカフェ難民・世襲・料亭・漢字・読み違え・直近の民意・国民の生活が一番、政権交代が最大の景気回復策、公務員改革
ガソリン値下げ、景気回復策、解散総選挙、ホッケの煮付け
世襲制廃止、地域主権、議員定数削減、地球温暖化対策]
280:デフォルトの名無しさん
11/12/28 20:24:40.34
NGワード情報ありがとう
281:デフォルトの名無しさん
11/12/28 21:48:58.32
カーナビ除く車載ソフトはだいたいC言語
282:デフォルトの名無しさん
11/12/28 21:58:45.07
>>275
execv*() の引数 char **p を malloc() で確保する場合に、
それが子関数を呼び出して呼び出し先で確保して親関数に戻ってくる場合には、
途中で char ***, が出現しないだろうか?
URLリンク(codepad.org)
283:デフォルトの名無しさん
11/12/28 22:39:07.02
ぼくも先輩方のような立派なCプログラマーになりたいのですが
今は大学で学んだ程度の基本的なC言語の文法くらいしかわかりません。
この先はどのように学習していけば良いのでしょうか?
284:デフォルトの名無しさん
11/12/28 22:42:44.85
>>283
一口にC言語って言っても、それを使って何をやるかってのはすごく幅広い
そして目的によって全然ノウハウは違ってくるから、実際みんな得意分野不得意分野がある
具体的に目標となる分野を決めて、その分野のプログラミングの勉強をすればいいんじゃないかな
285:デフォルトの名無しさん
11/12/28 22:57:38.97
>>284
Webプログラミングに興味あります
286:デフォルトの名無しさん
11/12/28 23:01:07.81
C言語はLinuxをかじっとけば大体大丈夫になる
287:デフォルトの名無しさん
11/12/28 23:05:44.32
>>285
じゃあC言語ではないが、HTML と CSS は覚えておいて欲しいな
Webプログラミングと言っても細かく分けると色々あるから
その後に何をやるのかは知らんが、何れにしろその辺の知識は役に立つはずだ
あとWebプログラミングなら専門板もあるんだぜ
WebProg
URLリンク(kohada.2ch.net)
288:デフォルトの名無しさん
11/12/28 23:28:13.34
なんでWebって文理不問なの
やっぱ組み込み系の方が賢いんですよね
289:デフォルトの名無しさん
11/12/28 23:28:56.60
流石にC言語の質問から離れ過ぎでしょそれは
290:デフォルトの名無しさん
11/12/29 00:33:45.06
大学で1年間プログラミングを習い、文法やポインタや構造体などを理解し、
簡単なCUIプログラミングをいくらか演習したようなレペルです
amazonのレビューで好評だったんで
S・P・ハービソン3世とG・L・スティール・ジュニアのCリファレンスマニュアル
URLリンク(www.amazon.co.jp)
この本を買ったんですが、難しすぎです
こんな自分に、おすすめの書籍かサイトを教えてくださいませ
291:デフォルトの名無しさん
11/12/29 01:06:00.17
webweb言ってる香具師はweb板いけばいいのに
292:デフォルトの名無しさん
11/12/29 03:44:07.66
>>272
ああ、同意だわ。
後続が理解しやすい、には、他のソースと程度をあわせることも含まれるね。
いかに当たり前のような記述であったとしても、その書き方が他のソースでされていなければ「何だこの小難しいコードは」と思われてしまう。
C++をベターC(…)として使っているプロジェクトでstd::vector使っただけでその洗礼を受けた。
293:デフォルトの名無しさん
11/12/29 07:04:39.91
例えばみんな手作業でマグロの一本釣りしてるのに一人だけ全自動リール使って楽してたら
空気読めない奴だと思われて村八分にされるのが落ちだろ
全自動リールってすごいね俺も今度からそれ導入しよう!とは絶対にならない
日本とはそういう国だ
294:デフォルトの名無しさん
11/12/29 07:29:09.68
PHPを開発の主において、C/C++をアセンブラに翻訳するように
PHPをCに翻訳して使えば良いと思う。
生産性的に。
そういうコンパイラがあるが、winで動かず確認してない。
295:デフォルトの名無しさん
11/12/29 08:25:52.21
なんでその程度の知識と技術しかないのにえらそうに言うの?
296:デフォルトの名無しさん
11/12/29 08:54:28.71
× ポインタ
○ ポインター
297:デフォルトの名無しさん
11/12/29 08:56:53.53
アクセントは「ポ」
 ̄\___
ポインター
298:デフォルトの名無しさん
11/12/29 09:05:03.26
ポリンキーか!
299:デフォルトの名無しさん
11/12/29 09:11:51.70
犬かよ。
理系ならJIS使え。
300:デフォルトの名無しさん
11/12/29 11:46:23.09
CRCを計算するソース。
#define CRC32_POLY 0x82F63B78 // CRC-32C (Castagnoli) #define CRC32_POLY 0xEDB88320 // CRC-32-IEEE 802.3
class CrcCalculate {
public:
unsigned int crc32table[256];
void make_crc_table();
CrcCalculate() { make_crc_table(); }
friend unsigned int crc32base (void *ch, unsigned int byte, unsigned int cal);
} CrcCalculate_;
void CrcCalculate::make_crc_table() {
unsigned int i, j, x;
for (i = 0; i < 256; i++){
x = i;
for (j = 0; j < 8; j++) if(x&1) x=(x>>1)^CRC32_POLY; else x>>= 1;
crc32table[i]=x; }}
unsigned int crc32base (void *ch, unsigned int byte, unsigned int cal) {
unsigned int i; unsigned char *p = (unsigned char *)ch;
for (i = 0; i < byte; i++) cal = (cal >> 8) ^ CrcCalculate_.crc32table[(cal ^ p[i]) & 0xFF];
return cal; }
unsigned int crc32 (void *ch, unsigned int byte) {return crc32base( ch, byte, 0xFFFFFFFF ) ^ 0xFFFFFFFF ; }
unsigned int crc32 (const std::string &ch) { return crc32( (void *)&ch[0], ch.size()); }
301:デフォルトの名無しさん
11/12/29 12:01:48.33
>>300
荒らし市ね。
302:デフォルトの名無しさん
11/12/29 13:04:48.42
CRC32は重要な割に、標準関数に組み込まれてないから、簡単に使えるように貼ったんだよ。
303:デフォルトの名無しさん
11/12/29 13:09:43.25
頭悪そうだな。
304:デフォルトの名無しさん
11/12/29 13:20:16.19
チェックサムで十分
305:デフォルトの名無しさん
11/12/29 13:23:17.43
Cでもないもの貼るな。
306:デフォルトの名無しさん
11/12/29 13:25:37.35
つーか、CスレにC++貼るとか頭に蛆でも湧いているのかと。
307:デフォルトの名無しさん
11/12/29 13:41:44.93
C++をやるとバカになるっていう見本を、身をもって示してくれてるんだよ
308:デフォルトの名無しさん
11/12/29 13:45:31.04
お前ら、プログラミング以外だとイキイキしてるなw
309:デフォルトの名無しさん
11/12/29 15:02:11.94
c99の可能性は考えないのか。
310:309
11/12/29 15:02:54.34
俺が悪かった。
311:デフォルトの名無しさん
11/12/29 15:20:39.12
C99禁止って職場は、レガシー以外の理由があるのかな?
312:デフォルトの名無しさん
11/12/29 15:46:10.20
大抵は低レベルに合わせるためだと思うけどな。
それ以外だと互換性か。
313:デフォルトの名無しさん
11/12/29 15:59:30.55
C99を導入する理由がそもそもないだろ
314:デフォルトの名無しさん
11/12/29 16:00:30.91
c99禁止と言いながら、//コメントやブロック先頭以外での変数の宣言は使う顧客もいるにはいる。
315:デフォルトの名無しさん
11/12/29 16:25:21.48
windowsではfopenは同時にオープンできる数に制限がある。
オープン、クローズを繰り返して使うか、APIを使うしかない。
316:デフォルトの名無しさん
11/12/29 16:25:59.03
大体は職場がターゲットにしてるコンパイラの問題だと思うけどね。
例えば、VC++はC99非対応。
まぁ、コーディング規約があって、上司が老害な可能性は否定出来ない。
317:デフォルトの名無しさん
11/12/29 16:33:17.25
>>315
windows以外だと制限がないの?
318:デフォルトの名無しさん
11/12/29 16:34:41.06
FOPEN_MAXで分かる。
windowsでは50になってた。
しかし47あたりで開けなくなる。
319:デフォルトの名無しさん
11/12/29 16:37:35.02
標準入力や出力というものがあってだな。
320:デフォルトの名無しさん
11/12/29 16:37:48.58
>>318
そりゃデフォで3つディスクリプタつかうもん。
321:デフォルトの名無しさん
11/12/29 16:39:36.03
移植性をたもちつつWindowsのUTF-16に対応できる_wfopenが良いと思っていたが
ファイル数の問題にぶち当たるとAPI使うしかなくなるな。
322:デフォルトの名無しさん
11/12/29 16:43:22.77
移植性のために、UTF-16(UNCODE)対応とファイル数制限を外した
fwopenなどの関数群はないものか。自作しかするしかないか。
323:デフォルトの名無しさん
11/12/29 16:43:58.90
つーか、なんでそんなにたくさん同時オープンしたいん?
324:デフォルトの名無しさん
11/12/29 17:04:38.17
そんなに沢山オープンしていると却って管理が面倒な飢餓。
325:デフォルトの名無しさん
11/12/29 17:07:55.94
そのオープン数の制限はスレッド単位? プロセス単位?
どっちにしろ、子スレッドなり子プロセスなりを立ててやらせたらいい。
326:デフォルトの名無しさん
11/12/29 17:23:44.04
#include <windows.h>
#include <stdio.h>
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) {
printf("てすと");
MessageBox(NULL , "Error" , "エラー" , MB_OK);
return 0;
}
失礼します。
メッセージボックスを出して、かつコマンドプロンプトにも文字を出力させたいのですが
上記のプログラムではメッセージボックスしかできません。どうすればよいのでしょうか?
327:デフォルトの名無しさん
11/12/29 17:33:02.27
Win32API質問箱 Build100
スレリンク(tech板)
328:デフォルトの名無しさん
11/12/29 19:19:33.98
>>326
>editbin /subsystem:console hoge.exe
329:デフォルトの名無しさん
11/12/29 20:03:01.03
>>322
UTF-16なんて普通にfopenでいいじゃん
ファイル数制限も普通に解除できるし
330:デフォルトの名無しさん
11/12/29 20:13:10.32
>>327
そこのスレすごくこわい
331:デフォルトの名無しさん
11/12/29 20:17:46.19
W32を敵視する奴がいるから
332:デフォルトの名無しさん
11/12/29 20:32:34.93
>326
プロジェクトをWin32コンソールアプリケーションで作成する。
333:290
11/12/29 20:42:25.03
おすすめサイトや書籍の質問は駄目なのか?
334:デフォルトの名無しさん
11/12/29 21:27:20.85
すいません
#include<stdio.h>
int main(void)
{
int a, sum=0;
for(a = 1; a <= 10; a++ );{
sum= sum+a;
}
printf("1から10の数の和は・・・%d", sum);
return 0;
}
だとなぜか11になるのですが
なぜでしょう
335:デフォルトの名無しさん
11/12/29 21:30:55.69
>>334
);{
336:デフォルトの名無しさん
11/12/29 21:58:09.79
| ┏━━┓ 従軍慰安婦は反日朝日新聞の捏造でした。
| ┃借収安┃ デマだらけの報道に注意しよう
| ┃三三婦┃
| ┃○○大┃
| ┃○○募┃
| ┃○圓集┃
| ┃圓以 ┃
| ┃迄上 ┃_
\┃可 ┃ \
┗━━┛ \
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ |
URLリンク(img04.ti-da.net)
337:デフォルトの名無しさん
11/12/29 23:42:56.45
int n = 1234;
↑のような数字の各桁を上から取り出す方法はあるでしょうか?
最初に1を取り出し、次に2を取りだしていくような感じです。
nの桁数は決まっていません。
よろしくお願いします。
338:デフォルトの名無しさん
11/12/29 23:44:53.84
>>337
遅くても良いなら sprintf してから一文字ずつチェック
339:デフォルトの名無しさん
11/12/29 23:56:00.70
むしろsprintfでいい
340:デフォルトの名無しさん
11/12/29 23:58:20.03
桁数が決まってないなら無理。
実装上の int や long の最大数を制限値とするならできる。
341:デフォルトの名無しさん
11/12/30 00:04:26.96
いやどっちにしろできるだろ。
342:デフォルトの名無しさん
11/12/30 00:08:42.62
>>340
どういう形であれロジック中で表現されているのに、それを取ることができないと断言するのはいかがなものか。
343:デフォルトの名無しさん
11/12/30 00:16:50.59
>>337
ほらよ。
URLリンク(codepad.org)
344:デフォルトの名無しさん
11/12/30 00:17:59.15
皆さん意見ありがとうございます。
桁数の方は2桁のときも4桁のときもありますが
最高は6桁で抑えれそうです。
引き続きsprintfを調査します。
345:デフォルトの名無しさん
11/12/30 00:18:20.93
桁数が決まってないってどんな状態だよw
そんなもん扱えるわけねーだろw
346:デフォルトの名無しさん
11/12/30 00:19:15.50
>>345
もういいから。
347:デフォルトの名無しさん
11/12/30 00:22:13.36
実る前の林檎を食べることはできない。
時空を超越してる。
348:デフォルトの名無しさん
11/12/30 00:24:00.49
>>347
そんなことはない。>>343
349:デフォルトの名無しさん
11/12/30 00:25:53.41
>>343
凄いスマートなコードですね。
ありがとうございます。
350:デフォルトの名無しさん
11/12/30 00:26:13.53
URLリンク(codepad.org)
351:デフォルトの名無しさん
11/12/30 00:29:22.16
まぁsprintf()の中で同じことをやっているわけだが。
>>350
せめてlimits使え。
352:デフォルトの名無しさん
11/12/30 00:37:02.91
関数形式マクロの展開で、
#define max(x,y) (x>y?x:y)
・
・
printf("max(x,y) = %d\n",max(x,y));
・
・
この場合""内のmax(x,y)が置換されないってのがいまいちしっくりこないんですが
""中の文字列は、定数としてメモリ上に取っておかれるようなイメージであってるでしょうか?
353:デフォルトの名無しさん
11/12/30 00:38:18.26
limits.hに最大桁数がマクロ定義されてるの?
354:デフォルトの名無しさん
11/12/30 00:42:33.87
>>348
>>>343
f()を呼び出すときに桁数決まってるじゃん。
355:デフォルトの名無しさん
11/12/30 00:49:09.72
じゃぁ桁数決まってない場合を書いてみろよ。
356:デフォルトの名無しさん
11/12/30 00:49:39.72
>>353
そんなこともわからんのか?
357:デフォルトの名無しさん
11/12/30 00:51:58.95
>352
なんか難しく考えてないか?
コンパイラが文字列にはマクロを適用しない様にしてるってだけだろ。
358:デフォルトの名無しさん
11/12/30 00:53:12.66
>>355
だから桁数決まってないと無理ってんじゃん。
359:デフォルトの名無しさん
11/12/30 00:54:20.95
>356
なんだ、適当に反論したいだけか。
360:デフォルトの名無しさん
11/12/30 01:03:47.30
>358
元の要求は
int n = 1234;
なんだから問題ないだろ。
361:デフォルトの名無しさん
11/12/30 01:04:24.41
>>359
アホは黙ってろって。
362:デフォルトの名無しさん
11/12/30 01:13:03.12
環境が書かれていない以上intの最大値(最大桁数)も決まっていない。
よって桁数が決まっていない。
363:デフォルトの名無しさん
11/12/30 01:14:25.96
つ アホは黙ってろって。>361
364:デフォルトの名無しさん
11/12/30 01:15:54.85
>>362
で、その場合、>>343だと何の問題があるわけ?
365:デフォルトの名無しさん
11/12/30 01:18:41.99
そいつと俺は違う人。
366:デフォルトの名無しさん
11/12/30 01:19:40.90
>>343 が桁数を決めずに処理できる良い例ってことだろ。
367:デフォルトの名無しさん
11/12/30 01:20:50.71
桁数が決まってない = 値が決まる前
これを扱うのはこの四次元時空においては不可能。
368:デフォルトの名無しさん
11/12/30 01:23:15.96
>>360
なんだからintの上限に決まってるだろ、アホ。
369:デフォルトの名無しさん
11/12/30 01:24:02.86
おこちゃまは寝る時間だぞ
370:デフォルトの名無しさん
11/12/30 01:25:21.77
intの最大値と最大桁数は違うと思うの。たとえ計算で求めることが出来るとしても。
371:デフォルトの名無しさん
11/12/30 01:26:59.27
最大値がわかれば桁数もわかるだろ。
どこの世界に住んでんだよお前は。
372:デフォルトの名無しさん
11/12/30 01:31:27.50
( <. | l //
__ ヽ\,.ィ´ .ニニェ‐、//
〈〈〈〈 ヽ >、.く^┘ `) 〈
〈⊃ } // ´ , -‐-、 〈,ヘヘ
∩___∩ | | | l <丶`Д´> l |
| ノ ヽ ! ! | l ヽ、__.ノ /./
/ ● ● | / ,,・ ヽヽヘ、____,,..ィ,ン′
| ( _●_) ミ/, ’,∴ ・¨ `/`'‐--ヽ''´
彡、 |∪| / 、・∵ ’ /、//|/  ̄ヽ
/ __ ヽノ / / // 異常 /\ 〉
(___) / / // TV/\ /
373:デフォルトの名無しさん
11/12/30 01:53:44.48
>371 子供は寝る時間だよ。
374:デフォルトの名無しさん
11/12/30 02:02:38.61
>371
アスペ乙
375:デフォルトの名無しさん
11/12/30 02:08:21.14
低脳乙。
376:デフォルトの名無しさん
11/12/30 02:53:38.46
>>355
桁数の決まってない数字を出力するから、入力が終わっている状態を示してくれ
377:デフォルトの名無しさん
11/12/30 11:21:47.78
>>376
getchar()が-1を返したら終わり。
378:デフォルトの名無しさん
11/12/30 12:30:43.88
1休さんかよw
屏風の虎w
379:デフォルトの名無しさん
11/12/30 12:32:30.81
>>377
URLリンク(ideone.com)
380:デフォルトの名無しさん
11/12/30 13:08:52.51
>>379
それだとnがINT_MAX越えたらAUTO。
381:デフォルトの名無しさん
11/12/30 13:12:14.92
INT_MAXを超える桁数ワロタ
382:デフォルトの名無しさん
11/12/30 13:15:28.48
元々そういう話だろ、何言ってんだお前。
383:デフォルトの名無しさん
11/12/30 13:18:34.50
元々そういう話ワロタ
元々はちげーだろw
384:デフォルトの名無しさん
11/12/30 13:24:14.62
INT_MAX桁以上の数を扱うのってどういうときだろう
天文学的な数字っていうのもせいぜい数十桁だろうに
385:デフォルトの名無しさん
11/12/30 13:30:02.86
そんな話だったのならとっくに終わってるってこと。
386:デフォルトの名無しさん
11/12/30 13:30:42.41
>>384
intが16bitならいくつかわかるか?
387:デフォルトの名無しさん
11/12/30 13:33:11.05
DXライブラリってどこでダウンロードすべき?
388:デフォルトの名無しさん
11/12/30 13:34:54.76
>>387
URLリンク(homepage2.nifty.com)
389:デフォルトの名無しさん
11/12/30 13:36:54.45
有限でない数を内部で扱うのはむりだろ、それで結論?
>>386
3万ぐらいでしょ
390:デフォルトの名無しさん
11/12/30 13:59:09.72
>>375
391:デフォルトの名無しさん
11/12/30 14:02:45.24
>>388
㌧クス
392:デフォルトの名無しさん
11/12/30 14:15:34.07
ファイル数制限を外して、UTF-16LEに対応するためにここまでできた。関数の中身はこれから調べて作る。
typedef void _WOFILE;
_WOFILE* _WOfopen( const wstring &fn , const wstring &mode){}
int _WOfseek(_WOFILE *fp, long offset, int origin){}
long _WOftell(_WOFILE *stream){}
size_t _WOfread(void *buf, size_t size, size_t n, _WOFILE *fp){}
size_t _WOfwrite(void *buf, size_t size, size_t n, _WOFILE *fp){}
int _WOfclose(_WOFILE *fp){}
int _WOfeof(_WOFILE *fp){}
#define FILE _WOFILE
#define _wfopen _WOfopen
#define fseek _WOfseek
#define ftell _WOftell
#define fread _WOfread
#define fwrite _WOfwrite
#define fclose _WOfclose
#define feof _WOfeof
393:デフォルトの名無しさん
11/12/30 14:34:29.35
C言語で無限大の数を扱うにはどうしたらいいですか?
394:デフォルトの名無しさん
11/12/30 14:34:36.77
>>392
ファイル数制限を超えてしまうような設計は考え直した方がいい
395:デフォルトの名無しさん
11/12/30 14:35:11.50
>>393
"無限大"って文字列でおk
396:デフォルトの名無しさん
11/12/30 14:45:29.90
>>393
n = 1/0;
397:デフォルトの名無しさん
11/12/30 14:48:32.05
C言語で桁数の不明な数を受け取って表示するにはどうしたらいいですか?
何桁になるかは全くわからず、制約もつけられませんが、受け取り終わってから表示したいです
398:デフォルトの名無しさん
11/12/30 15:00:25.04
どんな方法にせよ、上限は必要
399:デフォルトの名無しさん
11/12/30 15:08:57.78
結論が出ました
400:デフォルトの名無しさん
11/12/30 15:09:10.99
>>397
まだやってるのかw
401:デフォルトの名無しさん
11/12/30 15:11:07.84
>>393
IEEE754に定義があるからそれ使え。大抵の実装で使える。
402:デフォルトの名無しさん
11/12/30 15:26:35.95
>>397
スレリンク(tech板:22番)
403:デフォルトの名無しさん
11/12/30 15:40:01.02
最近「頭悪い質問で釣ってみた」の投稿多いな。
404:デフォルトの名無しさん
11/12/30 15:40:58.52
冬休みで暇なんだよ
面白いTV番組も無いし
405:デフォルトの名無しさん
11/12/30 16:27:10.92
>>404
これでも解いてろ
URLリンク(judge.u-aizu.ac.jp)
制限時間1秒以内 メモリ32MB 以内だからな
406:デフォルトの名無しさん
11/12/30 16:30:14.66
>>392
違ってたら悪いんだけど、先頭4KBの人?
407:デフォルトの名無しさん
11/12/30 16:32:02.05
>>405
AOJって問題が日本語で書かれてるからか、ここ最近よく見るようになったね。
海外サイトならお金くれたりするのにね。。
408:デフォルトの名無しさん
11/12/30 16:39:00.44
日本語で書かれていても条件の見落としが多いのに
英語だと問題文何回も読み直さなきゃいかんのがしんどい
409:デフォルトの名無しさん
11/12/30 16:42:55.01
>>408
ちなみにAOJ、英語設定で解いていくと条件の翻訳不足で詰む問題がいくつかあるんだぜ
410:デフォルトの名無しさん
11/12/30 16:46:00.99
まちまちな大きさのロールケーキをたくさん作るケーキ屋さんなんて、ない。
411:デフォルトの名無しさん
11/12/30 17:19:35.70
>>407
マジで金くれるの?
未解決問題でもコンテストでもないのに?
412:デフォルトの名無しさん
11/12/30 17:25:20.52
メールで鍵を交換するソフトのことなんですが
質問いいでしょうか
413:デフォルトの名無しさん
11/12/30 17:26:50.35
スレタイとどう関係あるかを説明できたらな。
414:デフォルトの名無しさん
11/12/30 17:55:44.49
sscanfで、一度読んだところは飛ばして次から読むような方法って何かありますか?
char *str = "1 2 3 4";
while(sscanf(str,"%d",&i))
で4回ループして1~4を読むような感じのことがしたいです
415:デフォルトの名無しさん
11/12/30 17:57:30.52
ポインタ(アドレス)を進める
416:デフォルトの名無しさん
11/12/30 17:58:24.26
>>414
%n ってのを調べればおk
417:デフォルトの名無しさん
11/12/30 17:59:45.84
【フジテレビ】東日本大震災を体験した人々の証言を集め、
被害の実情を検証 『わ・す・れ・な・い~東日本大震災・命の記録』
12月30日(金)午後6時~午後8時54分放送
URLリンク(prtimes.jp)
418:デフォルトの名無しさん
11/12/30 18:05:49.40
>>415-416
%nで取得した分だけポインタを進めることでできました
ありがとうございます
419:デフォルトの名無しさん
11/12/30 19:29:27.09
朝日新聞は一時期300人のネット工作員をかかえ、反日工作していた。
捕まった編集者は49歳ですが、こんなカスでも1500万円の年収がもらえるんですよ。
Domain Information: [ドメイン情報]
a. [ドメイン名] ASAHI-NP.CO.JP
e. [そしきめい] かぶしきがいしゃ あさひしんぶんしゃ
f. [組織名] 株式会社 朝日新聞社
-「朝日新聞社は、とある思想やパラダイムに日本の世論を誘導する見返りに、中国から大量の資金を貰っている。」-
これはおそらく週刊誌さえ書けない。
「失語症躁鬱ニートは氏ねよ」【ネット】朝日新聞社員(49)ネットで荒らし行為、会社ごとアクセス規制へ 09.3
420:デフォルトの名無しさん
11/12/30 20:30:59.82
ロールケーキの問題わからんなあ
普通に総当りしたら時間切れになるし
どういう考え方で並びを求めるんだろう?
421:デフォルトの名無しさん
11/12/30 20:57:01.68
凸凹になるようにする。
たとえば半径5と5をつなげると、距離20を使ってしまう。
凸凹だと節約出来る。
422:デフォルトの名無しさん
11/12/30 20:59:26.05
そうね、一番凸凹になる並びを求めて入るかどうか調べればいいんでないか。
つまり、隣同士の半径の差の合計を最小にする問題かな。
423:デフォルトの名無しさん
11/12/30 20:59:38.68
あ、最大ね。
424:デフォルトの名無しさん
11/12/30 21:19:52.33
うむ、一番凹凸になる並びとはどのように求めるのかわからん
425:デフォルトの名無しさん
11/12/30 21:34:47.35
てんさいです
【東京都渋谷区】 12/31(土) 年忘れしてはならない!紅白さくら祭 みんなで「韓流紅白」をぶっ飛ばせ!
年忘れしてはならない!紅白さくら祭 みんなで「韓流紅白」をぶっ飛ばせ!
12時00分 渋谷駅ハチ公前広場 「街頭演説」(~13時30分)
13時30分 移動
14時00分 渋谷公会堂前 「街頭演説」(~14時45分)
15時00分 代々木公園・NHK横「イベント広場」
「年忘れしてはならない!紅白桜祭」
抗議集会・コンサート・炊き出し等々
盛りだくさんでお送りします!(~21時00分)
426:デフォルトの名無しさん
11/12/30 21:36:22.19
誰も行かないだろ
427:デフォルトの名無しさん
11/12/31 00:04:10.36
動的計画法にすればよいことが分かり
保持すべき結果も分かったつもりなのにacceptされない。。。
どこが悪いのか指摘ください
URLリンク(ideone.com)
数時間かけてできないなんて俺やばいなあ
428:デフォルトの名無しさん
11/12/31 01:00:44.90
>>427
何やってるのかさっぱり分からん
俺やべー
429:デフォルトの名無しさん
11/12/31 01:00:55.97
>>427
printf("%d %.5f¥n",width,min);
↑の行が余計とか?
430:デフォルトの名無しさん
11/12/31 01:27:09.54
>>427
while(sscanf(buf+offset,"%d%n",&cake[num],&oftmp) > 0){
↑ケーキ12個の場合、cake[12]をアクセスしているみたいだが。
431:デフォルトの名無しさん
11/12/31 02:55:23.02
#include <stdio.h>
int main()
{
printf("円の面積計算機\n");
printf("半径を入力してください\n");
double pi,hankei,S;
pi=3.1415926535;
scanf("%f",&hankei);
S=hankei*hankei*pi;
printf("面積は%fです",S);
return 0;
}
結果が0.000000になるんだが
432:デフォルトの名無しさん
11/12/31 02:58:56.20
%fはfloatへのポインタじゃないとだめ。
433:デフォルトの名無しさん
11/12/31 02:59:55.64
scanf("%f",&hankei);
↓
scanf("%lf",&hankei);
434:デフォルトの名無しさん
11/12/31 03:15:15.47
printfでは%fでも大丈夫だからscanfでも大丈夫だと思ってた
ありがとう
435:デフォルトの名無しさん
11/12/31 08:37:07.48
printf()系とscanf()系には色んな点で互換性が無いから要注意。
互換性があるかのごとく書いてある入門書で勉強した人は特に。
436:デフォルトの名無しさん
11/12/31 11:21:54.70
scanなんとかは型とサイズの指定が必須という事でいい?
437:デフォルトの名無しさん
11/12/31 11:39:54.94
>>397
長さを問わないということは、文字列だという想定で。
終わりの検知(EOFとか)の仕方があれば、人間がタイプできる長さくらいは受け取った後で表示できる。
438: ◆QZaw55cn4c
11/12/31 11:43:04.99
>>436
正確には、ISO/IEC 9899:1999 6.5.2.2.6。
可変長引数では float -> double の型変換が行われる。だから printf() に float と double の区別は不要。
scanf()系にわたるのはポインタだから float->double は不可能であり区別しなければならない。
439:デフォルトの名無しさん
11/12/31 11:49:43.19
>>397
URLリンク(pastebin.com)
realloc 使ってあとは上限を処理系にまかせるのがラク。
もっと厳密にやるならヒープ管理とか双方向リストとか、reallocの必要ない形式のバッファ管理を行うことになる。
オンメモリや仮想メモリに収まらない長さまで想定するならmmap とかも使う
440:デフォルトの名無しさん
11/12/31 13:09:34.26
>>439
それだとcapaがINT_MAX越えたらAUTO。