トップページ⇒tech
1001コメント330KB

スレを勃てるまでもないC/C++の質問はここで 4

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2008/09/17(水) 15:41:48
スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。

過去ログ
スレを勃てるまでもないC/C++の質問はここで
http://pc11.2ch.net/test/read.cgi/tech/1167476845/
スレを勃てるまでもないC/C++の質問はここで 2
http://pc11.2ch.net/test/read.cgi/tech/1178503366/
スレを勃てるまでもないC/C++の質問はここで 3
http://pc11.2ch.net/test/read.cgi/tech/1187521676/
0460デフォルトの名無しさん2008/12/02(火) 18:21:47
gcc拡張で
a = b;
0461デフォルトの名無しさん2008/12/02(火) 18:44:57
a|oven::copied_to(b);
0462デフォルトの名無しさん2008/12/02(火) 19:20:46
文字列データから文字列をサーチじゃなく、
バイナリデータからバイナリ列をサーチする関数、STLないですか?
0463デフォルトの名無しさん2008/12/02(火) 19:23:28
boost::xpressive
0464デフォルトの名無しさん2008/12/02(火) 19:32:15
C++初心者です。

list<int> list[M][N];

みたいな2次元配列って出来るんですか?
0465デフォルトの名無しさん2008/12/02(火) 20:22:08
マルチすんな初心者だからってのは免罪符にゃなんねーぞ死ね馬鹿


できるよ
0466デフォルトの名無しさん2008/12/02(火) 20:55:07
C/C++に詳しい方々よ。
質問があるのでどうか答えてほしい。
C++とVB.NETで両方ともオブジェクト指向でわけわからんになってしまった経験があるのだが。オブジェクト指向って本当に必要なんですか?
コンピューターの世界で無理やり知らなければならないような方向に誘導されてるような気がするのですが。
オブジェクト指向は効率的なプログラムを組むために必要だとか利便性を説いてるが、かえって複雑になって習得が難しくなってる気がする。
Windows上でツールを作ることを目的としてプログラミング言語を2,3勉強したが。身についたのはC言語だけ。
もうこうなったらオブジェクト指向はさっぱりあきらめてC言語だけで行こうかと思ってるのですけど。
C言語でアプリやツール、ゲームをつくる需要は今後も残るのでしょうか?
0467デフォルトの名無しさん2008/12/02(火) 21:06:00
>>466
俺は詳しいとはいわんが、C の需要は残ると思う。ただ、アプリ、ゲームを
チームで全てCで作ることはあまり無くなるだろう。一人で作るなら勝手に。
ドライバとか低レベル(悪い意味で無くて)のものはCで残るものがあるはず。

ただ、オブジェクト指向使えた方が楽だと思うんだけどなぁ…
(C→C++,Java と来た人だけど)

他の人の意見も見てみたい
0468デフォルトの名無しさん2008/12/02(火) 21:12:54
リア厨房の頃HSPから入って「関数?クラス?いらねーよ」とか言ってた私ですが
今ではすっかりC++に馴染んでオブジェクト指向じゃないと面倒だと感じるようになりました^q^

>>467の言う通り完全に需要がなくなることは当分無いと思う(実際COBOLとか未だに需要あるし)けど、
やっぱり自分一人という範囲に限らないならオブジェクト指向の知識は必要だと思う。
ライブラリの類もオブジェクト指向前提のものは多いしね。
0469デフォルトの名無しさん2008/12/02(火) 21:20:11
極端なこと言えば、オブジェクト指向なんて当たり前のことに名前を付けただけ。
みんながむやみやたらと唱えるバズワードと化してしまったのがだいぶ前から。

あと、Cで書かれたプログラムだってオブジェクト指向的な部分はいくらでも指摘できる。
もちろん、Cはオブジェクト指向プログラミング言語ではないし、
そこで書かれたプログラムにも、オブジェクト指向プログラミングでよく見かける特徴は
あまり見出せないけど。
0470デフォルトの名無しさん2008/12/02(火) 21:23:52
>>466
気持ちはすごいわかる。

自分もそんなに分かってるわけじゃないけど、世間のオブジェクト指向って
それっぽい文法を採用してるよ、ってぐらいなので、そんな気にすることはないと思う。

言語体系が複雑になっているのは、汎用性とのトレードオフじゃないかね。
C言語のコアはシンプルだけど、何かするなら結局OSのAPIとか使わないとならない。
Javaみたいにそれ全部仕様に含んじゃうと、当然仕様は膨らんじゃう。

仕事でチーム作業の場合 C++で統一するってのは仕方ないだろうね
でも自分は C で作ってる。必要最小限のコードで済ませられるし、
プログラムとかプロセスのレベルでシステムを設計すれば、実際のところ
言語はなんでもいいしね。
0471デフォルトの名無しさん2008/12/02(火) 21:23:55
>>466
そのうち慣れるって。
慣れたらもう戻れないけどね。いや、戻れるけど
クラス無いのきびしーって思うようになるよ。
関数やローカル変数なかったらきびしーなんてもんじゃないけど。
そういえばCOBOLには無いんだっけw
0472デフォルトの名無しさん2008/12/02(火) 21:26:04
>>467
ご回答ありがとう。
C++とVB.NETと一通り勉強したけど、自分でオブジェクト指向でプログラムつくれなくて挫折したわ。
これを理解できるのはかなり頭のいい人だろうね。
趣味でプログラミングをやってるので、チームワークの必要なことはしないし知ってるのは唯一自分でコードが書けたC言語だけでいいかなとも思った。

ところで質問をもうひとつしますが。
ウェブブラウザのFirefoxってフリーでソースが公開されてるけど、
ビルドするのにGCCを用いる様だけど、これってC言語でできてるのでしょうか?
0473デフォルトの名無しさん2008/12/02(火) 21:30:56
デザインパターンの本を読むと
オブジェクト指向で何がしたいのか分かると思う
0474デフォルトの名無しさん2008/12/02(火) 21:33:21
>>466
確かに色々と覚えることがあって回りくどくて面倒なんで
うんざりするほどその気持ちはわかる。
自分もそう思っていたんで。

でも、とりあえずクラス化したら楽だと思うんだ。
慣れないうちは全部publicなメンバでも良いと思う。
関数名とか変数名とかdrawとかxみたいに短くても楽に管理できるし。
それだけでも重宝するかと。
0475デフォルトの名無しさん2008/12/02(火) 21:59:58
>>474
なんだか知らないけれど新たにがんばってみようと言う気になったわ。
ありがとうよ。
0476デフォルトの名無しさん2008/12/02(火) 23:33:31
C++ は気張って OOP とか言わずに、Cに STL があると思った
だけで大分便利。ついでに自分で template 書けるようになると
もっと便利。そんなことしてるうちに自然と OOP。
0477デフォルトの名無しさん2008/12/03(水) 02:46:39
OOPってそんな気張ったモノでもないよ
ファイル処理関連はどの言語もOOPみたいなもんだ
単に語順と追加機能の有無だけ
0478デフォルトの名無しさん2008/12/04(木) 17:38:38
入門書みつつ文法を1から学び、日々黒い画面の中で動かしているのですが
左上に「ファイル」、右上に最小化最大化閉じる、といったものがある普通のアプリの段階にはいつ入るものなのでしょうか?
あるいはこういった骨格みたいなの?は入門書的にはなんという項目から始まるものなのでしょうか
0479デフォルトの名無しさん2008/12/04(木) 17:54:24
>478
入門書は普通、CやC++の基礎部分を解説するもの
ウィンドウシステムは応用部分にあたるので
入門書ではあまり語られない

一通り入門書を触ったら、Visual C++ Express 辺りを落として
インスコした Visual C++ をテキトーに弄ったり
Windowsプログラミングの書籍を読んで勉強するヨロシ
0480デフォルトの名無しさん2008/12/04(木) 18:17:54
>>478
http://homepage2.nifty.com/c_lang/index_sdk.html
0481デフォルトの名無しさん2008/12/04(木) 18:19:18
C言語はUNIXでもWindowsでもMacでもLinuxでも使うけど
ある程度共通項が多い上扱いやすい stdio に対して
ウィンドウシステムの扱いは各環境でバラバラ。
そしてその多くはそれだけで本が1〜数冊書ける複雑さ。
直接扱うのは複雑だからと、簡単に扱うためのライブラリもある。
(WindowsならMFCや.net、LinuxならTkやGTKやQtなど)
それから、色んな環境で扱えるように作られたライブラリもある。
(wxWidgetとか。.netやTkも一応互換環境がありこっちにも分類可能)
環境も手段も多様で、総てを統括するのは困難。
0482デフォルトの名無しさん2008/12/04(木) 18:32:53
>>479-
ありがとう、また文字を表示する作業から勉強しなおしてきます
0483デフォルトの名無しさん2008/12/05(金) 09:10:33
void * (*)(void *) 型の意味を教えてください
0484デフォルトの名無しさん2008/12/05(金) 09:34:16
なんかよく解らんポインタを引数にとって、なんかよく解らんポインタを戻す関数へのポインタ
0485デフォルトの名無しさん2008/12/05(金) 09:38:40
それなりに的確な説明なのに何故か笑ってしまったw
0486デフォルトの名無しさん2008/12/05(金) 11:47:41
日本語のcdeclプログラムを作ってみないか?
0487デフォルトの名無しさん2008/12/06(土) 10:25:01
どこまでを設計と呼ぶのやら
0488デフォルトの名無しさん2008/12/06(土) 10:27:23
すっまん。誤爆だ。忘れてくれ。
0489デフォルトの名無しさん2008/12/07(日) 10:30:31
アクセス制御ってぶっちゃけあんまいらなくね?
0490デフォルトの名無しさん2008/12/07(日) 10:47:51
まぁ個人でやっている分には間違ってメンバ変数を弄って困ってしまうって状況は想像つかない。
アクセスできなくて困ることはあるが。
0491デフォルトの名無しさん2008/12/07(日) 17:10:34
ところで
int v(char *c){int i;sscanf(c,"%4d",&i);return htons(i);}
この関数をもっと短くする方法あるかな?
Code Golfの感じで。
引数のcharポインタは"YYYYMMDD"といった数字文字列の領域を指してると思いねぇ。
0492デフォルトの名無しさん2008/12/07(日) 17:32:09
>491
七行スレのログ読めば短くするノウハウが沢山あると思う
0493デフォルトの名無しさん2008/12/07(日) 18:38:38
>>491
先頭のintを省く
0494デフォルトの名無しさん2008/12/07(日) 23:11:37
charと*の間の空白も不要。
0495デフォルトの名無しさん2008/12/08(月) 08:24:27
POSIXスレッドのmutexロックって標準でデッドロックを回避してくれますか?
0496デフォルトの名無しさん2008/12/08(月) 11:20:15
>>495
いいえ
0497デフォルトの名無しさん2008/12/08(月) 11:47:46
http://www.geocities.jp/chacha_yhk1219/prog/prog001.html
↑を見てインターフェースクラスというものを知ったのですが
インターフェースクラスをスーパークラスとして実装を行った場合、
特定のサブクラスのみが持つようなメンバ関数にアクセスすることができないと思いました。
このサイトに書いてあるインターフェースクラスというものが間違いなのか、
それとも私の理解がぜんぜん足りていないのでしょうか。
どこが間違っているか、どこが理解不足かの指摘をお願いします。
0498デフォルトの名無しさん2008/12/08(月) 11:51:55
>>497
型キャストすれば特定のサブクラスのみが持つようなメンバ関数にアクセスすることができる。
reinterpret_castだったかな?
0499デフォルトの名無しさん2008/12/08(月) 11:54:55
異なるクラスを IExample として共通に扱いたいのであるから、
特定のサブクラスのみが持つ特殊なメンバ関数などには興味がないはずである
0500デフォルトの名無しさん2008/12/08(月) 11:55:17
例えばですが、
>>497のサイトでCExample3という、IExampleを継承したクラスを追加するとして、
IExampleがもしMethod2()というメンバ関数を持っていたら、
大幅な修正を加えないとMethod2を呼ぶことができないように思います。

理解が足りないのでしょうか…
C++は難しいです
0501デフォルトの名無しさん2008/12/08(月) 11:57:34
リロードせずに書き込んでしまいました。

>>498
レスをありがとうございます。
スーパークラスからサブクラスへのキャストはあまりよろしくないと聞きました。
実際は使っても良いものなのでしょうか。
それとももっと別の書き方をするのでしょうか。

>>499
レスをありがとうございます。
ということは、特殊なメンバ関数を使いたい場合には、
やはりどういったクラスがあるかを確認して、
そのクラスの型を持つポインタを用意する必要があるということでしょうか。
0502デフォルトの名無しさん2008/12/08(月) 11:58:37
しかも500はIExapmleがじゃなくてCExample3が、の間違いです。すみません
0503デフォルトの名無しさん2008/12/08(月) 11:59:21
なんか課題でテンプレートを使ってジェネリック関数のsearch(b,e,b2,e2)とcopy(b,e,d)と
partition(b,e,p)を定義しろってのがあったんだけどだれかおしえてくだしあ><
0504デフォルトの名無しさん2008/12/08(月) 12:00:59
なんとなくですが>>499さんの仰ることがぼんやりとわかった気がします。
頭の回転が遅いので、これをヒントにもっと考えてみます。ありがとうございます。
0505デフォルトの名無しさん2008/12/08(月) 12:03:45
>>504
Javaを学ぶと良い。言語仕様にInterfaceを含んでいる。
0506デフォルトの名無しさん2008/12/08(月) 12:04:01
>>501
特定のサブクラス固有の特殊なメンバ関数を使いたいというのは、
すべてのクラスを共通のインタフェイスで扱いたいという趣旨に反している
設計がどこかおかしい
0507デフォルトの名無しさん2008/12/08(月) 12:42:56
>>503
template<class T>void copy(T * b, T * e, T * d) {for (; b != e; ++b, ++d) *d = *b;}
他は仕様が余りに曖昧なのでパス。
0508デフォルトの名無しさん2008/12/08(月) 12:50:36
例えばこんなのとか?
template<typename FI, typename PRED>FI partition(FI b, FI e, PRED p)
{
if (b == e) return b;
while (p(* b)) if (++b == e) return b;
FI n = b;
while (++n != e) if (p(* n)) swap(* ++b, * n);
return b;
}
0509デフォルトの名無しさん2008/12/08(月) 14:05:26
p(* n)<ーどういう意味?
0510デフォルトの名無しさん2008/12/08(月) 14:11:07
イテレータbの指す値を引数にして関数オブジェクトpを呼ぶ
0511デフォルトの名無しさん2008/12/08(月) 14:11:41
すまん、イテレータnだった
0512デフォルトの名無しさん2008/12/08(月) 14:23:05
答えてくれてどうもありがとう。
でもなんか動作がほんの少しちがうようだ。原因は不明
0513デフォルトの名無しさん2008/12/08(月) 14:27:01
そりゃぁ、仕様を提示しないで動作が一致したら凄いと思うよ。
つーか、>508ってSTLの実装じゃないの?w
0514デフォルトの名無しさん2008/12/08(月) 14:33:51
virtual void UpdateMatrix( const Matrix &parent ){}

ここで「unused parameter 'parent'」のWarningが出てしまいます。

コンパイラを変える
コンパイラオプションを変える
#pragmaで抑制する
以外の簡単な解決法があれば教えてください。
0515デフォルトの名無しさん2008/12/08(月) 14:39:34
virtual void UpdateMatrix( const Matrix & ){}
0516デフォルトの名無しさん2008/12/08(月) 14:48:54
>>515
�d
なんで気付かなかったんだろ
0517デフォルトの名無しさん2008/12/08(月) 14:51:06
気付くという話じゃない。文法書読め。
0518デフォルトの名無しさん2008/12/08(月) 21:46:41
#include <stdio.h>

class   CHoge
{
    const int path; //  ここでのconstがエラー?
public:
    CHoge();
    void    Show();
};

CHoge::CHoge(){ path = 1024; }

void    CHoge::Show(){  printf( "%d\n", path ); }

void    main()
{
    CHoge   hoge;

    hoge.Show();
}
上記のソースでコンパイルするのですが
error C2758: 'path' : オブジェクト コンストラクタの初期化リストで初期化されませんでした。
とコンパイルエラーがでます
const int path を int path にするとコンパイルは通るのですが、
pathをconstにして変更不可にしたい場合どのような手段があるのでしょうか?
0519デフォルトの名無しさん2008/12/08(月) 21:53:52
CHoge::CHoge(){path=1024 ;}
↓
CHoge::CHoge() : path(1024){}

constなんだから代入できるわけ無いだろカス
0520デフォルトの名無しさん2008/12/08(月) 22:10:07
ん?
ではどうしろと?
0521デフォルトの名無しさん2008/12/08(月) 22:14:11
ちゃんとどうしたらいいか書いてくれてるじゃないか
0522デフォルトの名無しさん2008/12/08(月) 22:17:27
>>521
参考書にはその書式載ってなかったんだ
ありがとう
0523デフォルトの名無しさん2008/12/08(月) 22:30:52
#include <stdio.h>

class   CHoge
{
    const int path
public:
    CHoge();
    void    Show();
};

CHoge::CHoge() : path(1024){} 

void    CHoge::Show(){
    char    lo[path];       // ここでエラー
    printf( "%d\n", path );  // ここはOK
}

void    main()
{
    CHoge   hoge;

    hoge.Show();
}
う〜ん
error C2057: 定数式が必要です。
error C2466: サイズが 0 の配列を割当てまたは宣言しようとしました。
error C2133: 'lo' : サイズが不明です。
とエラーがでるんですが、#define の変わりにはならないんでしょうか?
0524デフォルトの名無しさん2008/12/08(月) 22:34:22
C++ってconstなメンバに何の修飾もなくアクセスできるの?
CHoge::pathとかいろんな言語でありがちな書き方だと思うけど
0525デフォルトの名無しさん2008/12/08(月) 22:37:07
エラーが出た箇所よりも後ろについてここはOKと判断するのって危ないよねえ
0526デフォルトの名無しさん2008/12/08(月) 22:45:11
satic つけろ static
あとそうすると定義方法が変わるけど
0527デフォルトの名無しさん2008/12/08(月) 22:46:20
Cでは const 修飾した変数は定数として使えないけど
C++ではできるよ
0528デフォルトの名無しさん2008/12/09(火) 00:04:01
static const int path = 1024;
これ、クラス・関数外ならstaticは要らない。
0529デフォルトの名無しさん2008/12/09(火) 11:59:20
c++で例えば
while(a!=c) a++;この文ってa++だけ繰り返すんだよね?
0530デフォルトの名無しさん2008/12/09(火) 12:00:25
>>523
static ではない const は「インスタンス生成後に書き換えないよ」というだけで
コンパイル時に決定できないかも知れない。なので、
>#define の変わりにはならないんでしょうか?
ならない。ここは素直に頭に static 付けて、後ろに = 1024 付けるよろし。

但し、もし VC++ 6.0 だとこれもできないんで enum hack 使うしかない。

>>529
是。
0531デフォルトの名無しさん2008/12/09(火) 12:07:40
>>530
529だけどおkと解釈しますね
05325302008/12/09(火) 12:42:49
あああ「是」じゃわかんねーよ馬鹿>俺
そです。おk。
0533デフォルトの名無しさん2008/12/09(火) 13:02:42
>>529
a!=c も繰り返すよ、というのが正確だけどまあいいか
0534デフォルトの名無しさん2008/12/09(火) 14:23:28
>while(a!=c) a++;
なんでa=c;にしないの
0535デフォルトの名無しさん2008/12/09(火) 14:36:21
aとcの型がcopy constructibleとは限らないから他
0536デフォルトの名無しさん2008/12/09(火) 15:01:03
そこは assignment compatible というべきだな。
0537デフォルトの名無しさん2008/12/09(火) 15:43:06
オーバーロードしてて副作用があるかもしれない。
0538デフォルトの名無しさん2008/12/09(火) 16:28:47
>>536
言われてみればそうだな
指摘あんがと
0539デフォルトの名無しさん2008/12/09(火) 18:14:40
>532
大丈夫、中国語では「そう」って感じの意味だ
0540デフォルトの名無しさん2008/12/09(火) 18:43:19
是非
0541デフォルトの名無しさん2008/12/09(火) 19:59:20
宗介「肯定だ。」
0542デフォルトの名無しさん2008/12/09(火) 20:15:13
そーすけってポニョの?
0543デフォルトの名無しさん2008/12/10(水) 02:06:45
>>539
「是」は「はい」だ
「対」が「そう」に近い
0544デフォルトの名無しさん2008/12/10(水) 02:46:18
>543
対か。謝謝。
0545デフォルトの名無しさん2008/12/10(水) 08:30:11
元々、「是非」と言う言葉は「是が非でも」だ。
つまり、「「はい」ではなく「いいえ」だとしても」という意味だね。
0546デフォルトの名無しさん2008/12/10(水) 09:24:26
ここなんて中国語スレ?
0547デフォルトの名無しさん2008/12/10(水) 09:36:53
>>542
台詞からして、相良軍曹だな。
0548デフォルトの名無しさん2008/12/10(水) 12:46:39
ちょっとした疑問が浮かんだんですが、
scanf()は入力したものを受け取る関数だと思うのですが、
受け取れる箇所は1つだけなのでしょうか?

例:scanf("%d",&a)は10進数で受け取り、aに保存?すると思いますが
  scanf("%d",&a,&b)のように複数に保存できるようにはできないでしょうか?

変な質問でスマソ、意味がわからなかったら軽くスルーしてください orz
0549デフォルトの名無しさん2008/12/10(水) 12:48:08
//空白区切り
scanf("%d %d", &a, &b);
//コンマ区切り
scanf("%d,%d", &a, &b);
0550デフォルトの名無しさん2008/12/10(水) 17:40:07
scanf("%d",&a);
b=a;
とするしか。
0551デフォルトの名無しさん2008/12/10(水) 18:09:08
なるほど、一つの入力を「複数に保存」と捉えたのか。

馬鹿だな。
0552デフォルトの名無しさん2008/12/10(水) 21:41:53
Visual C++を使用していて、ちょっと困ってしまったので助けてください。
下記画像のようにスペース部分に色つき矢印やらドットやらが表示されて消えなくなってしまいました。
どこかでキーボード押し違えたみたいで・・
この設定の解除の仕方を分かる方いたら教えてください><
   ↓
http://imepita.jp/20081210/770880
0553デフォルトの名無しさん2008/12/10(水) 21:42:55
MAKEFILEでどうしても分からない事がありますので、 お教え願いたいのですが。
#-------------------------------------- リンカ(GUI)
linkexe = $(linkopt) -Tpe -aa
#-------------------------------------- リンカ(CONSOLE)
linkcon = $(linkopt) -Tpe -ap
#-------------------------------------- リンカ(DLL)
linkdll = $(linkopt) -Tpd -aa

linkconとlinkdllのマクロが使用されている箇所が、
この行以下にはありません。
しかし、linkconとlinkdllの記載を削除すると、リンク時にエラーが出ます。

$(name)T.EXE: FOO1.OBJ $(sobj) $(name)T.RES
$(linkexe) @&&|
$(C0GUI) FOO1 $(sobj)
$(linkout)$.
!if $(UseBCC)
$&
$(DebugLib) NOEH32 IMPORT32 CW32
!endif
$&.RES
|

質問
�@リンクエラーでは、 $(linkexe) @&&| という部分に関係がしていると思われるのですが、
@&&| の意味が分かりません。この意味について教えて頂けませんでしょうか。
または参考になるサイトがあれば、そちらを教えて頂きたいです。

�A$(linkout)$.
$. の意味も分かりません。
0554デフォルトの名無しさん2008/12/10(水) 21:46:49
>>553
Make専用スレへどうぞ。

>>552
VisualStudio専用スレへどうぞ。

どちらもC/C++の質問ではありませんね。
05555522008/12/10(水) 22:31:10
失礼しました。移動します。
またよろしくお願いします。
05565532008/12/10(水) 22:32:45
失礼しました。移動します。
またよろしくお願いします。
0557なめ2008/12/10(水) 22:39:29
ID 名前 性別

というフォーマットのファイルがあるとします。
これを、それぞれを文字列として、構造体に格納するとします。
構造体の例:
struct{
std::string a; // IDを格納
std::string b; // 名前を格納
std::string c; // 性別を格納
}_dataType;

各行には、上記の3つのレコードだけだとして、
区切り文字は、半角空白か、Tab('\t')
行末には空白文字は許容するけど、それは、構造体の「性別」を格納する変数には
含まない

てな条件で、データファイルを読み込む場合、
std::stringで、std::getline() を使う
char * で、fstream::getline()をつかう
char * で、fgets()を使う
その他
どれが一番楽なのか教えてほしいっす。できれば、切り分けするところのサンプルなんかも。。。

環境:gcc + cygwin
できれば、Linuxにも流用したいので、Win系のライブライは使いたくないです。
0558デフォルトの名無しさん2008/12/10(水) 22:45:46
>>557
http://pc11.2ch.net/test/read.cgi/tech/1226229627/57,60-61
0559デフォルトの名無しさん2008/12/10(水) 22:51:07
>>557
短絡的な意味で最も簡単なのはfscanfだろうね
0560デフォルトの名無しさん2008/12/10(水) 22:55:56
FILE * fp = fopen("foo", fp);
char tId[1000];
char tName[1000];
char tGener[1000];
fscanf(fp, "%999s%999s%999s", tId, tName, tGender);
fclose(fp);
_dataType foo = {tId, tName, tGender};
■ このスレッドは過去ログ倉庫に格納されています