[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 03/25 02:13 / Filesize : 275 KB / Number-of Response : 1034
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け 151



1 名前:デフォルトの名無しさん [2019/04/02(火) 11:23:37.62 ID:SQXqRaAc0.net]
!extend:checked:vvvvv:1000:512
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
codepad.org/

C11
www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf

C99
www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
kikakurui.com/x3/X3010-2003-01.html

C FAQ 日本語訳
www.kouno.jp/home/c_faq/

JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

496 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 07:43:24.28 ID:glRpLuyC0.net]
確かにつまらんね
リンクだけとかググレカスとか
せっかく掲示板にいるのに対話がないのは

497 名前:はちみつ餃子 mailto:sage [2019/05/11(土) 09:55:06.58 ID:GtXmrqj00.net]
>>481
リンクを示すのも、ググればわかるようなことにググれというのも対話だよ。
対話を終わらせてるのはお前だろ。

リンク先を見て意味がわからんかったならどうわからなかったか、
よりよい説明があると思うならそれを示してもいい。
望むことだけ欲しいというのは対話とは言えんよ。

498 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 10:34:34.75 ID:glRpLuyC0.net]
>>482
話が噛み合ってない
おまえさんとは平行線のようだな

499 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 11:46:55.45 ID:0ygzdBDA0.net]
ID:glRpLuyC0が対話する気なさすぎて草w

500 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 12:23:55.76 ID:9iCvmH6s0.net]
ここは質疑を行うスレであって
対話したり、雑談したりする場ではない

501 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 19:10:51.09 ID:HOBfdmGr0.net]
Cの上位互換(?)として、C++がありますが。C++は覚えた方がいいですか?
もしくは、CとC++を両方覚えたら、Cは不要になり、C++でコードを書くようになりますか?
C++でできることはCでもできるように見えますので、ならCだけでいいようにも思えたり。

502 名前: mailto:sage [2019/05/11(土) 19:18:54.28 ID:KtHZQgR00.net]
>>486
C++ は最近規格の改定がすすみ、いろんなことが C++ の枠内でできるようになりました

503 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 19:21:03.92 ID:2v2BzL6t0.net]
>>486
言っておくが、python,C++,Java,javascript,C#,shellでできる事はC言語でも出来る
更に君が作ろうとしてるものや、やりたいことは、もう誰かが作ってる
ましてや大規模になると、googleとかamazonと戦う羽目にもなる
それが嫌ならプログラミングなんて辞めとけ

504 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 19:32:35.19 ID:HOBfdmGr0.net]
>>487-488
了解です、ありがとうございます



505 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 21:07:19.81 ID:glRpLuyC0.net]
>>484-485
482は反対意見を述べているという意味でまだいいところがあったが
てめーらは一方的な押しつけしか頭にない100%真のノイズだ

506 名前:はちみつ餃子 mailto:sage [2019/05/11(土) 21:28:03.11 ID:GtXmrqj00.net]
>>490
既に解説があると示すのも質問に対する回答として十分だし、それで不満な理由がまるでわからん。
それが対話でないと断言するのも意味がわからん。
結局のところどうして欲しいの?

507 名前:デフォルトの名無しさん [2019/05/11(土) 22:15:36.12 ID:YLmnNEXIa.net]
きっと寂しいんだよ。

508 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 22:49:22.08 ID:glRpLuyC0.net]
>>491
意味がわからんからどうした?
平行線の相手に何か言って欲しいのか?

509 名前:はちみつ餃子 mailto:sage [2019/05/12(日) 10:19:15.38 ID:l86zXz3/0.net]
>>493
そう決めつけて続きを拒むなら「一方的な押し付けしか頭にない」「対話がない」というまさにそれでしかなくね?
意味がわからんから解説してくれっての。
わからんことを理解する必要があるから対話になるんだろ。

510 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 11:22:06.40 ID:VeGHf8Lz0.net]
>>494
自分の言葉で何か言えよと思う俺の意見を
おまえ真っ向から全否定しただろ
だから接点がないと判断したんだ
接点があるなら最初の態度を撤回しろ
話はそれからだ

511 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 11:57:36.56 ID:7nn+3/Jt0.net]
>>495
意見を全否定って、そりゃ異なる意見があるのは当然だろう。異なる考えなら議論にならないなんて、議論する気が無いだけだろう。

ついでだが、俺もお前さんの意見には反対だ。自分の言葉で書くかはまったく重要ではないと思う。お手軽に書ける掲示板のレスは言葉足らずだったり不正確な表現なことも多々あるが、それよりきちんと纏まった情報をリンクされた方がありがたいことも多い。

512 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 12:19:14.09 ID:VeGHf8Lz0.net]
>>496
意見が異なるのと全否定は違うぞ
自分はこう思うと述べるのと
おまえは間違っているというのの違いだ

よくいるんだよ、どっかからの受け売りを壊れたレコードみたいに繰り返すだけなやつとか
俺は自分の知見からは何も出てこないのかよと思うことがあるが
おまえはそれで満足なら勝手に満足してろよ

そこが俺とおまえの違いだな

513 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 15:34:15.26 ID:SbCKIsfP0.net]
質問です
テキストファイルから文字を1文字ずつ読み込んでchar型の2次元配列matrixに入れていきたい。
この時改行は配列に入れたくないときどうすれば良いですか?

うまくいかないコード
for (i=0;i<10;i++) {
for (j=0;j<10;j++) {
if (fgetc(fp) == ‘\n’) {
continue;
}
matrix[i][j] = fgetc(fp);
}
}


テキストファイルは行数と列数があらかじめ分かってるとして
例えば
AAAAAAAAAA
BBBBBBBBBB

のようなファイルです

514 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 15:51:11.62 ID:L7lYUohVa.net]
fgetc二回呼びたいの?



515 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 16:10:46.32 ID:7kDDqNbD0.net]
>>498
continueだと内ループ先頭に戻るから違うんじゃないの

516 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 16:24:47.11 ID:R31sKZyy0.net]
>>498
.for ... {
. for ... {
. char c = fgetc(fp);
. if (c != '\r' && c != '\n') {
. m

517 名前:atrix[i][j] = c;
. }
. }
.}
[]
[ここ壊れてます]

518 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 17:12:05.74 ID:SbCKIsfP0.net]
>>499
呼ばなくていいです
>>501
これでもうまくいかないです

519 名前:経団連 mailto:sage [2019/05/12(日) 17:22:08.08 ID:uLUIsoqa0.net]
for (i=0;i<10;i++) {
for (j=0;j<10;j++) {
matrix[i][j] = fgetc(fp);
}
fgetc(fp); //読み捨て
}

520 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 17:29:14.22 ID:CrklWm7I0.net]
変な例出すなよ…

521 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 17:29:29.19 ID:gzai7Rgq0.net]
サイズが固定なら fread でよくない?
そうすべきというほどのものでもないだろうが。

522 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 17:35:10.27 ID:x4ccFx6b0.net]
>>498
「うまくいかない」症状を見れば、もう少し見当がつくんだけど…。
格納先の配列を char matrix[LINES][CHRS]; とか定義して、
printf("%s\n", matrix[n]); で表示してるの違うかな。

各行の文字列の末尾にあるべき '\0' が格納されてない、みたいな。

523 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 17:36:33.22 ID:JjryTeWM0.net]
2重ループやめても良いか?
 while (1) {
  int c = fgetc(fp);
  if (c == EOF) {
   break;
  }
  if (c == '\n') {
   continue;
  }
  matrix[i][j] = c;
  j++;
  if (j == 10) {
   i++; j = 0;
  }
 }

524 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 17:38:28.80 ID:JjryTeWM0.net]
501の方法だと'\n'読んだ時に、スキップしているけど
ループ変数の方は ++1 してるからズレてくる



525 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 18:35:08.99 ID:SbCKIsfP0.net]
>>503
>>507
どちらも行けました
507のは理解できるんですが
503の読み捨てというのはどう言うことなのでしょうか

526 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 18:43:30.54 ID:JjryTeWM0.net]
>>509
10個読んで1個捨てる

527 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 20:38:42.19 ID:WOFscy660.net]
バッファにつめるところを簡単にしてみた。
https://ideone.com/fJ91BI

528 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 06:41:01.67 ID:7SLYc+Rqr.net]
OSSで構造体を公開しようとおもってる

そのサイズをバージョンアップしても固定にしたいんだけどいいアイデアないかな?
struct foo {
int a;
double b; // ここをバージョンアップで追加
}

char[100] buffer;

上記を予め含めておいて、追加サイズ分だけ減らすってのがよくある手段だと思うけど、intや他の型が固定サイズの保証はないから、処理系をかんがえると使えない
パディングでサイズも変わっちゃうしね

C++ならテンプレートでいけるけど、OSSだから利用者が多いC言語で書いておく必要がある
構造体を公開しないで、ハンドラとセッタで扱えばいけるだろうけど、今回は構造体でいきたい

529 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 08:01:00.18 ID:YNmKUGxB0.net]
「sizeof(int)が環境依存」を前提にするなら
バージョンアップ以前のint a;だけでもう既にサイズ固定じゃないじゃん
int32_tですら必ずある保証はないよ

「汎用な記述で全ての環境に対応したい」ってのが、土台無理な注文なのよ
低レベルなことやるなら、サポートする環境を列挙限定しなければならない

素直に「よくある手段」でやりなさいってことだ

530 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 08:07:10.74 ID:0o/9QF7Tx.net]
>>512
処理系によるパディングとかの問題を別にしたら、bufferをunionにしといたらわざわざ減らさなくても良いのでは?

531 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 08:25:38.55 ID:7SLYc+Rqr.net]
>>513
たしかにint aですでに違うね
ただ今回考えてるのは、コンパイルせずに共有ライブラリを差し替えるって状況を想定してる
そのときにセグメンテーションフォールトがでないようにしたい
だから、すべての処理系で同じサイズにしたいってわけじゃなくて、同じ処理系の中ではバージョンにかかわらずサイズを保ちたいってことなんだよね
説明不足ですまん

532 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 08:36:30.40 ID:2RiYyx1fa.net]
あらゆる環境だったらシリアライズしないとだし。
同じ処理系だったら同じ構造体でいいだろうし。

533 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 13:41:09.36 ID:d9/Wmgv60.net]
>>514 のはこんな感じですかの

union foo {
 struct {
  int a;
  double b; // ここをバージョンアップで追加
 };
 char dummyBuffer[100];
};

534 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 13:59:44.65 ID:d9/Wmgv60.net]
構造体の大きさが char[100] に収まってる範囲での話
>>512 のように末尾に用意したギャップを引き算していくにしても、引ききれなくなった段階で破綻するよね

※ 突破したことをチェックするには sizoef(union foo) と sizeof(char[100]) とを比較すんのかなぁ…



535 名前:経団連 mailto:sage [2019/05/14(火) 14:09:24.00 ID:4po1tQ0w0.net]
C99 <stdint.h>のuint*_t型を使った方がいいと思う。

536 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 14:39:04.31 ID:2RiYyx1fa.net]
普通符号付きでしょ

537 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 14:51:20.14 ID:5nOlmwWa0.net]
符号プログラミングか

538 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 15:42:40.54 ID:2RiYyx1fa.net]
今はstatic_assertとかいうものがあるらしいぞ
これでコンパイル時にチェックすればよい

539 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 21:12:50.85 ID:8soz04JH0.net]
>>512

不格好だけどこれでいけるよ
全部プリプロセッサで処理できて、構造体サイズは100バイト固定になる。
予想を超えてサイズを突き破った場合は別構造体作るしかないね。

#include <stddef.h>

struct inner_foo {
int a;
char buf[];
};

#define MAX_STRUCT_SIZE 100
#define BUF_SIZE (MAX_STRUCT_SIZE - offsetof(struct inner_foo, buf))

struct foo {
int a;
double b;
char buf[BUF_SIZE];
};

540 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 07:47:15.99 ID:FPbZusNo0.net]
>>523 ちょっと間違ってるみたい。
struct foo には struct inner_foo に double b; が追加されてるせいで
sizeof(struct foo) == MAX_STRUCT_SIZE にならない。
sizeof(struct foo) == MAX_STRUCT_SIZE + sizeof(double) になっちゃう。

inner_foo と foo とで char buf[] より前のメンバを一致させる必要がある。

541 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 08:35:12.84 ID:0TljqresM.net]
>>515
なんでサイズが違うとセグメンテーションフォールトになるのかよくわからんが…
Win32APIみたいに頭にサイズ入れときゃいいんじゃね?

542 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 08:56:22.39 ID:nK0I7Knm0.net]
データファイルの話なら分かるが、intのサイズが違う環境の共有ライブラリってそもそも使えるのか?

543 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 09:12:43.64 ID:e9I3VVqQa.net]
コンパイルは自分でしろって話だと思うよ。
そうすると単にメモリ配置を意識した

544 名前:vログラムだな。
当然、バイトオーダーも気にしろよっていう話に
[]
[ここ壊れてます]



545 名前:デフォルトの名無しさん [2019/05/15(水) 09:32:21.44 ID:k0yjAgrYa.net]
やっぱ int32_t みたいな環境に関係なく同じビット数になるやつにしといた方が良いんじゃないかな。

546 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 09:45:02.94 ID:25auY+1H0.net]
515の
>ただ今回考えてるのは、コンパイルせずに共有ライブラリを差し替えるって状況を想定してる
>そのときにセグメンテーションフォールトがでないようにしたい

構造体のパラメータを追加し共有ライブラリを差し替えつつ
呼び出し側のコンパイルは行わないって無理ないか?

旧ソースで追加されたパラメータ部分は不定値であって
その不定値をうけて共有ライブラリ内部が正しく動作できるとは思えないが…

547 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 11:40:27.07 ID:AfKgri370.net]
構造体には、サイズの変わらない、ポインタだけを置いておいて、

実際の領域は、ライブラリ内で確保して使って、解放すれば?

548 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 12:19:01.09 ID:e9I3VVqQa.net]
さすがに実体を共有するという目的がないとこういう発想にはならんでしょ。
共有メモリとか、ファイルとか、通信とか。

549 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 12:31:29.02 ID:dMKqDPXvr.net]
>>529
呼び出す側がバージョン情報をもっておいて、処理側で振り分けてアクセスしないようにすれば問題ないね

#define version 2

void func (const struct* foo) {
func_impl(foo, version);
}


void func_impl(const struct* foo, int version) {
if (version > 1) {
foo.b;
}
}

550 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 12:43:05.74 ID:25auY+1H0.net]
>>532
そのバージョン情報の数字を埋め込むのに一番適度なのは実構造体のサイズって話に(>>525)

>>531 のような背景なら
ペイロードサイズは触りたくない ってのは納得できるな
バージョン違いの吸収法は別途必要だけど

551 名前:デフォルトの名無しさん [2019/05/15(水) 12:53:24.07 ID:k0yjAgrYa.net]
構造体の中身を公開しないでポインタだけ使わせて読み書きする関数を別途用意するって方法もあると思う。オブジェクト指向の言語でのプロパティのようなものね。
内容のファイルへの読み書きやネットワークでのやり取りはそれようにデータをpack、unpackする処理を作ってそこにバージョン番号も埋め込む。

552 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 12:59:51.65 ID:Wbf0zcGJ0.net]
exeがnew(malloc)するけど中をいじるのは全てdllの関数ってのはままある
dllだけ差し替えで済ましたい、サイズが変わらなければexeはビルドし直さなくていいのに…
ってことだろう

>512の
>intや他の型が固定サイズの保証はないから、処理系をかんがえると使えない
>パディングでサイズも変わっちゃうしね
は全く関係ない話だったということだ

素直に「よくある手段」でやればいい

>514,517のunionもいいと思うけど
foo.aでアクセスできないよね?foo.body.aとかしないと

553 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 13:12:20.84 ID:25auY+1H0.net]
>>517 の foo.a でいきなりアクセスできる union が記述できるのは C11 からみたい
無名構造体/無名共用体

554 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 14:41:00.06 ID:dMKqDPXvr.net]
>>535
intが4バイトなんて保証はないから、char[] bufの大きさを決められないって話でしょ?
intメンバを追加したとして、bufのサイズはどれだけ減らせばいいのかわからないのが問題
4の環境が多いだろけど、2の環境だと2を減らさなきゃいけないわけで

dll差し替えで再ビルドしない場合、構造体サイズが変わると特に配列渡しの場合はセグメンテーションフォールトになる可能性が高くて危険
セーブデータみたいに構造体をそのままファイルに落とすとしても、サイズはずっと不変なのが扱いやすいね



555 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 14:56:07.34 ID:e9I3VVqQa.net]
数字付かないintのでかい方に合わせるなら、それこそunion使って明示的にオフセット決めるとか。
本当にそんなことしたいのか?という話は置いといて。
もちろんint32_tとかint_least32_t使う方がいいし、本当に位置合わせするならバイト位置指定して読み書きするし、そもそもサイズ固定

556 名前:ケずにシリアライズ用のライブラリ使うのが正しいよ。 []
[ここ壊れてます]

557 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 19:35:47.81 ID:0TljqresM.net]
>>537
> intが4バイトなんて保証はないから、char[] bufの大きさを決められないって話でしょ?
そんな話はとっくに終わっとる
>>515をちゃんと読めよ

558 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 20:46:54.27 ID:Wbf0zcGJ0.net]
>>536
ほう知らんかった
なら>517でほぼデメリットないね

>>537
「その環境」でのintのサイズはsizeof(int)でおk

559 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 21:55:29.06 ID:ZaVTFrP70.net]
win32apiはバージョンによって構造体の変数が追加になるから構造体のサイズを構造体の先頭にセットする

560 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 08:13:26.18 ID:eEplP63Q0.net]
windows.hのsmallで一時間潰した

561 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 19:38:59.34 ID:GXqxfUU20.net]
文字配列列sを逆順に文字配列tに格納して出力したいのですが、
以下のコードでは実行してもt=[]と出力されてしまいます
#include <stdio.h>
#define MAXLINE 1000
main()

{
char s[MAXLINE],t[MAXLINE];
int c,i,I;

for(i=0; i<MAXLINE-1 && (c=getchar())!=EOF && c!='¥n'; ++i)
{
s[i]=c;
}
if(c=='¥n'){
s[i]=c;
++i;
}
s[i]='\0';

I=i;
for(i=i; 0<=i; i=i-1)
{
t[I-i]=s[i];
}

printf("t=[%s]",t);
}

どこがおかしいのでしょうか…

562 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 19:48:10.73 ID:q0J7kB7g0.net]
後のループの一発目は

s[i]='\0';
I=i;
/* ここのforを削って */
t[I-i]=s[i];

こういうことになるから

t[0] = s[i] ってことになって t[0] = '\0'; をやってることになる
上記のは
  1 2 3 4 \0 → \0 4 3 2 1 のコード
実装すべきなのは
  1 2 3 4 \0 → 4 3 2 1 \0 となるコード

563 名前:デフォルトの名無しさん [2019/05/16(木) 20:27:22.18 ID:m1+/MMjMa.net]
惜しいねえ。綺麗に逆に入ってはいるんだよな。

564 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 20:38:11.53 ID:GXqxfUU20.net]
おっしゃる通りでした…今度は上手くいきました
ありがとうございます



565 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 20:38:46.73 ID:GXqxfUU20.net]
おっしゃる通りでした…今度は上手くいきました
ありがとうございます

566 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 21:09:34.65 ID:q0J7kB7g0.net]
自己解決できたようでなにより
整数の配列を逆に整列させるなら正解だったんだけどねー
「文字列」操作の落とし穴ですな

567 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 22:03:40.11 ID:e0Mh58zT0.net]
今C言語教室でSQLとGUIやってる初心者なんだがCでDB弄る仕事ってあるのか
JavaとかC#に取られそうだけど

568 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 22:06:44.17 ID:8rj7/ih6a.net]
sqliteは使うよ

569 名前: mailto:sage [2019/05/18(土) 22:07:47.63 ID:Pqc0+ZP00.net]
>>549
ODBC 経由ならできますが…昔、ハンドルのキャストをとちったミスを、その意味不明の動きから突き止めるのは大変でした
ODBC を直書きする情報はネットにほとんどありませんね

570 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 22:19:48.67 ID:e0Mh58zT0.net]
SQL使うのか慣れてないからあんまやりたくないんだよなあ
頑張るか

571 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 22:37:47.44 ID:D3aJPSyb0.net]
>>549
C++ならまだしもC言語でGUI?
どこの教室だよ…

572 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 22:53:12.41 ID:RWbfx4gX0.net]
むかーし、Pro*C って使った事がある
Cのソース内にSQLを埋め込み
プリコンパイルする感じ
今は流行らないかもしれない

573 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 22:58:45.45 ID:8rj7/ih6a.net]
SQL使いこなしてる人ってすごいけど、正直ああはなりたくないという感じだよな。

574 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 23:01:53.11 ID:RWbfx4gX0.net]
賢いファイルシステムとして利用すると超便利だぞ



575 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 23:02:38.45 ID:RWbfx4gX0.net]
同じ事をCのロジックで組むとなると、アタマおかしくなるかも

576 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 23:08:58.89 ID:Y/SMFmS40.net]
普通にアプリケーションの規模が大きくなるとsql使いたくなるだろ

そういう場合はsqlite使う

577 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 23:10:30.33 ID:RWbfx4gX0.net]
5ちゃんねる専用ブラウザもsqlite使っているそうですね?
プログラムコードはCではないですが

578 名前:デフォルトの名無しさん mailto:sage [2019/05/19(日) 10:01:29.20 ID:EV8D9m9A0.net]
IoTのデバイス開発やってるけど、C言語でDBのクライアントライブラリ使ってるよ

579 名前:デフォルトの名無しさん mailto:sage [2019/05/19(日) 16:30:57.06 ID:b6d7Y/CF0.net]
リーナスさんはC++嫌いつーてるしな
トレードマークのfuck口調で

580 名前:デフォルトの名無しさん [2019/05/19(日) 17:49:51.40 ID:V/GPYpFPa.net]
この頃は間に何かライブラリ挟んでDB変わってもSQL文がほぼ同じままで行けるようなのが流行りなのでは?

581 名前:デフォルトの名無しさん mailto:sage [2019/05/19(日) 19:08:51.80 ID:SqCxdnVY0.net]
大学の情報科の人たちってどのレベルでC言語使えるんですかね?
Cに限ったことではないですが大学4年でどの程度の練度が身につくのか

582 名前:デフォルトの名無しさん mailto:sage [2019/05/19(日) 19:17:39.10 ID:Ic55MIMX0.net]
人によるだろ
そもそも好きなやつは大学入る前からやってるからな

583 名前:デフォルトの名無しさん mailto:sage [2019/05/19(日) 19:22:28.74 ID:qBoKnLB7a.net]
>>563
別に使えなくてもいいよ

584 名前:デフォルトの名無しさん mailto:sage [2019/05/19(日) 21:05:03.54 ID:b6d7Y/CF0.net]
>>565
おまえは情報科に来るなってだけ
やる気ねえやつが畑違いな学部に入ること自体が害悪だ



585 名前:デフォルトの名無しさん mailto:sage [2019/05/19(日) 21:14:52.17 ID:Y3pJ4vrOa.net]
>>566
お前が入ったの専門学校だろ?

586 名前:デフォルトの名無しさん mailto:sage [2019/05/19(日) 21:19:32.43 ID:b6d7Y/CF0.net]
>>567
化学科だけど

587 名前:デフォルトの名無しさん mailto:sage [2019/05/19(日) 21:24:37.32 ID:RJz4Ejb00.net]
学校だとアルゴリズムやシステム設計手法は学べるだろうが
練度が上がるのはやはり仕事を始めてからだと思う

588 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 12:44:26.31 ID:PSRVLRmYr.net]
コンピュータサイカヨウの基本は一通りやるんじゃない?
情報処理試験の基本レベルくらいのもの
初心者は実務にはそのままは使えないけど、中級以上のエンジニアならこのあたりの知識があると差がついてくるね

589 名前:デフォルトの名無しさん [2019/05/20(月) 14:12:04.87 ID:0d3wAWyu0.net]
業務のほとんどは手作業の自動化だから差は出ない。そしてみんなリストラされる。

590 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 18:18:34.53 ID:IJBxlZ980.net]
仕事で出会った、いろいろな人を思い出すに、ガチに使える人材って凄いからなあ。
学校や仕事を通じて学ぶ、みたいな次元じゃないんだよねえ。

591 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 19:49:19.18 ID:Nbm/sW0Oa.net]
おまえが使ってるんだったらおまえが偉いよ

592 名前:デフォルトの名無しさん mailto:sage [2019/05/21(火) 00:42:18.33 ID:jVHVO/YL0.net]
setbuf関数っていつなんの為に使うんや?
バッファリングのためにあるのはわかるけどそもそもバッファリングがなんの為にあるのかわからん

593 名前:デフォルトの名無しさん mailto:sage [2019/05/21(火) 00:44:38.83 ID:Hcv2vO/e0.net]
ちまちま出力するより溜めてからまとめて出力した方が高速

594 名前:デフォルトの名無しさん mailto:sage [2019/05/21(火) 01:29:10.75 ID:jVHVO/YL0.net]
1万文字くらいのテキストファイルを標準出力でやってみたけど変わった気しなかったぞ
もしかして数百万文字レベルの巨大ファイルだと劇的に変わるんか?



595 名前:デフォルトの名無しさん mailto:sage [2019/05/21(火) 01:34:19.46 ID:XM845/F70.net]
10kbって小さくね

596 名前:デフォルトの名無しさん mailto:sage [2019/05/21(火) 01:46:59.05 ID:+xvLcOVEa.net]
というか普通はバッファリングする関数ばっかりだが、自前でバッファ用意したいときもあるって話。
基本変わらんよたぶん。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<275KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef