- 1 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 14:09:22 ]
- エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.44【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1194016813/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
- 240 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 08:10:40 ]
- >>239
できないんですか〜。 残念。 正確にやりたいことを書くと、引数に「100,りんご,200,みかん,150,バナナ」みたいなものがあります。 でも引数の数は「100,りんご,200,みかん」かもしれないし、「100,りんご」かもしれないし、もしかしたら引数がないかもしれません、 で、まず構造体を作って、 struct Foo { double value; char *name; }; int i; for(i = 1;i < argc; i = i + 2) struct Foo test[i/0] = {atof(argv[i]), argv[1+i]}; ってできないかなぁと思って。
- 241 名前:240 mailto:sage [2007/12/12(水) 08:12:12 ]
- struct Foo test[i/2] = {atof(argv[i]), argv[1+i]};
の間違いです。
- 242 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 10:06:49 ]
- >>236
それはやりすぎwww
- 243 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 10:31:57 ]
- i/0ってw
- 244 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 10:44:43 ]
- >>224
要素が12bitのように振舞うvector<signed long>のラッパー vector<signed long>に12bitずつ格納するラッパー イテレータも実装すればいろいろ応用できるだろう
- 245 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 11:12:50 ]
- >>240
造体の要素ごとに入れていくか、 コンストラクタつきの構造体(クラス)にして、引数にするとかじゃね? っていうか、やりたい事を見ると、簡単な構文解析が必要なんじゃね?
- 246 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 11:51:50 ]
- >>221
MTU (最大転送単位)なんだから、MTUより大きなパケットは使えません。 なんで分割されると困るの?
- 247 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 13:23:24 ]
- if(!a)printf("hello world");
だとaが偽(0の時)の時printfを実行するという意味でしょうか
- 248 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 13:31:10 ]
- そうですよ。
- 249 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 13:34:02 ]
- >>247の質問をエスパーするとだな
真が0以外なのに正常終了が0なのはどうしてですか ってことだと思う
- 250 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 13:42:26 ]
- #include <vector>
#include <sstream> #include <algorithm> struct Foo { double value; std::string name; }; int main (int argc, char *argv[]){ { std::vector<Foo> FooArray; if (argc > 1) { std::vector<char> str(argv[1], argv[1] + strlen(argv[1]) + 1); std::replace(str.begin(), str.end(), ',', ' '); std::stringstream buf(&str[0]); Foo data; while (buf >> data.value >> data.name) FooArray.push_back(data); } return 0; }
- 251 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 13:44:05 ]
- >>250は>>240へのレスね。ちなみにマルチバイト文字列だとバグるかも
- 252 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 13:50:44 ]
- >>250
240 を見る限り、実際にカンマ区切りのテキストを入力するわけじゃなくて argv に2つずつ並んでるみたいだよ。そんなめんどくさいことしなくていいみたい。
- 253 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 14:01:09 ]
- #include <vector>
#include <string> int main(int argc, char ** argv) { struct valname { double value; std::string name; }; std::vector<valname> valnames; for (int ic = 1; ic < argc; ic += 2) { valname data = {atof(argv[ic]), argv[ic + 1]}; valnames.push_back(data); } for (std::vector<valname>::const_iterator it = valnames.begin(); it != valnames.end(); ++it) { std::cout << it->value << ' ' << it->name << '\n'; } return 0; }
- 254 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 15:08:21 ]
- ポインタ配列は、一つ当たり32bit使いますか?
- 255 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 15:12:56 ]
- >>254
環境によります。 printf("%u\n", sizeof(void *))とでもしてバイト数を割り出してみてください。 大抵の環境では、その8倍がビット数になります。
- 256 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 15:14:39 ]
- サンクス
- 257 名前:デフォルトの名無しさん [2007/12/12(水) 15:29:40 ]
- int ch;
while((ch=getchar())!=EOF){ if(if(isalpha(ch)) analysis(ch); } ってなってるところで11Fってやったらanalysis(ch)に11回Fをいれるようにしたいんですどどうすればいいですか? analysis(ch)は他の関数です。
- 258 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 15:38:14 ]
- >>257
ループの外で count という変数を宣言して、0で初期化 ループの中で、isdigit() だったら count = count * 10 + ch-'0' analysis() を呼ぶところで、count の回数だけ繰り返し
- 259 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 15:39:51 ]
- >>257
日本語とCでOK。
- 260 名前:デフォルトの名無しさん [2007/12/12(水) 16:09:33 ]
- >>258
有難うございます、やってみます。
- 261 名前:デフォルトの名無しさん [2007/12/12(水) 16:59:20 ]
- const int num = 5;
int a[num]; って、C++では、配列を宣言ってできるの? これが出来たら、配列が動的に宣言できちゃうことにならない?
- 262 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 17:02:34 ]
- >>261
numはコンパイル時に確定しているから静的でないといけないC++でも問題ない。 Cの場合は、ローカル変数なら同じ方法で動的に宣言できる。
- 263 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 17:45:57 ]
- >>261
const は動的に書き換えられないので問題ない。
- 264 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 17:46:57 ]
- >>262
それはC99だろ
- 265 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 17:49:24 ]
- >>263
でも、変数の初期化時に動的な値で初期化できないかい? const int num = f(); みたいな感じで
- 266 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 17:59:55 ]
- >>265
やってみろ。話はそれからだ。 >>264 C99はCではないとでも?
- 267 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 19:29:48 ]
- >>266
C99はCの一つ。だから、Cの場合は云々行った場合、 それがC99だろうと、C89だろうとかまわない内容でないとまずいだろ。 ちゃんとC99である事を明記するべきだといっているんだ
- 268 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 19:42:03 ]
- なに、じゃあいまさらK&R形式でやれと?
構造体の直接代入は禁止かい?
- 269 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 19:53:47 ]
- 頭の悪い絡み方だが、本人的には鋭い突き上げなんだろうね。
- 270 名前:266 mailto:sage [2007/12/12(水) 20:19:43 ]
- いや、>268は私じゃないし。
- 271 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 20:21:03 ]
- いまの32bitx86用商用コンパイラってだいたいC++コンパイラだろ
C99をサポートした上記用Cコンパイラって何かある?
- 272 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 20:27:39 ]
- 取り敢えず、icc, sun studioはc99だね。
- 273 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 20:52:11 ]
- そもそも32bit x86用商用コンパイラ、というカテゴリそのものがアレだなー。
- 274 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 21:26:35 ]
- まぁC99、あんま流行ってないしな。
- 275 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 22:02:47 ]
- >>274
まーね、C++のCの部分だけで十分なんだけどって感じかな。 俺としては、C99サポートよりC++TR1のサポートを要求するって感じだ。 >>272 やっぱ、銭にならん、あるいは、対応要求が強くないからかなサポートしないってことかな。
- 276 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 22:07:35 ]
- というか、「いまの32bitx86商用Cコンパイラ」をC99対応に関わらず
列挙してみろってば。
- 277 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 22:19:19 ]
- ググレカス
- 278 名前:デフォルトの名無しさん [2007/12/12(水) 22:49:57 ]
- C++で typedef は何の為にあるんでしょうか。
自己満足以外の使い方を教えてください。
- 279 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 22:54:20 ]
- 移植性と書きやすさ
- 280 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:06:02 ]
- >>275
>まーね、C++のCの部分だけで十分なんだけどって感じかな。 つーか、C89から使ってる人間からすると、C99でどうしても欲しい機能って無いのよ。 むしろC99に対応するより、ISOやらJISやらにC89の規格を閲覧出来るようにしろと要求したい。
- 281 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:11:36 ]
- >>278
traitsの表現 というか自己満足してるのはお前だけ
- 282 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:27:42 ]
- typedef無かったらめっちゃ不便やん?
テンプレート使うときとか後で変更される可能性のある型使うときとか
- 283 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:31:06 BE:335659853-2BP(35)]
- コードコンプリート第2版とModernC++Designまじおすすめ
- 284 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:13:25 ]
- VCのうにコードな時、TEXT("もじれつ")でWSTR[]が作れるけど、
文字からWCHARを作るにはどうすればいいの?
- 285 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:24:05 ]
- おまえらC#も使えるよな?
- 286 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:24:24 ]
- TEXT('も');
_T('じ');
- 287 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:35:32 ]
- VCのうにコードな時、TEXT("もじれつ")でWSTR[]が作れるけど、
いや無理だろ
- 288 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:45:21 ]
- >>284
C/C++言語で文字列をどうこう言う前に、自然言語で正しい(意味が伝わる)文字列を 扱えるようにするのが先だとは思わないかね?
- 289 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 19:15:14 ]
- vector配列の解放はどうやるんですか? resizeとかで縮めるしかないですか
- 290 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 19:17:53 ]
- 自己解決しました clear();というのがありました
- 291 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 19:25:20 ]
- だめだ
解放されていない
- 292 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 19:26:46 ]
- reserve(0);でも解放されないよ どうしたら良いんですか
- 293 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 19:30:50 ]
- vectorの解放ってあんましピンとこないなー。
std::vector<T>( hoge ).swap( hoge ) でシュリンクできる、ってEffectiveSTLにあったけど、 そういう話?
- 294 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 19:34:25 ]
- 解放できましたよ 標準でついてないのが良くないですね
main(){ int n; vector<double> a(10000000,1); vector<double>().swap(a); scanf("%d",&n); }
- 295 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 19:37:39 ]
- >>293
作業領域でたとえば100M使っていたとして、そのあとにもプログラムが続く場合 作業領域は消したいですよね 多分サブルーチンで確保したものは戻るときに消えていると思うのですが そうでないと消したいわけなんですが・・標準でついてないです
- 296 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 19:44:52 ]
- そういう意味なら、スコープ抜けたら消えるでしょ。
vectorの定義から消したい場所までをブロックで囲めば。
- 297 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 19:47:29 ]
- 万能解放命令できたよ
template<typename T> void clear(T& t){ T().swap(t);} main(){ int n; string a; a.resize(100000000); clear(a); vector<double> b(10000000,1); clear(b); scanf("%d",&n);}
- 298 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 19:50:30 ]
- >>296
実験してみました ちゃんと解放しますね 勉強になりました main(){ {vector<double> b(10000000,1); Sleep(1000);} int n; scanf("%d",&n); }
- 299 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 20:00:26 ]
- でも有効範囲を括弧で括るのは紛らわしいですね 他にも適用範囲の別の物がまじっていたら困ります
明示的に解放するほうが良さそうですね
- 300 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 21:00:51 ]
- vcはclearで解放しなかったかな
- 301 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 21:23:11 ]
- C99の複合リテラルに対応しているコンパイラって何がありますか?
- 302 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 21:40:38 ]
- gccって更新はやいんじやないの?
- 303 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 00:36:56 ]
- >>299
まともにスコープ切ってれば明示的な解放(ブロック作成)が要るようになることなんて 無いと思うよ。そうとう特殊な場合でしょ。
- 304 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 02:17:40 ]
- ImpersonateLoggedOnUser関数による偽装ログオンについて教えてください
アドミン権限で動いてるプログラムのうち、ユーザHOGEに偽装ログオンして 動かしたいA()という関数と、アドミン権限で動かしたいB()という関数があります。 このとき、 LogonUser(..., &hToken); ImpersonateLoggedOnUser(hToken); A(); B(); RevertToSelf(); CloseHandle(hToken); としてしまうと、B()までHOGE権限で動いてしまうと思っています。ので、 LogonUser(..., &hToken); ImpersonateLoggedOnUser(hToken); A(); RevertToSelf(); CloseHandle(hToken); LogonUser(..., &hToken); ImpersonateLoggedOnUser(hToken); A(); RevertToSelf(); CloseHandle(hToken); B(); とするか、 LogonUser(..., &hToken); ImpersonateLoggedOnUser(hToken); A(); RevertToSelf(); ImpersonateLoggedOnUser(hToken); A(); RevertToSelf(); B(); CloseHandle(hToken); とするかだと思うのですが、A()、B()が何回か繰り返し呼び出されるとき、後者のように LogonUser()を呼ぶのは一回だけにして、LogonUser()とCloseHandle()の間に複数回の 偽装・偽装解除・A()・B()を呼び出すのは問題ないでしょうか。 多分大丈夫なんじゃとは思うのですが、そういうサンプルコードが見あたらなかったので 決めかねている次第です。どなたか教えていただけると助かります。
- 305 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 11:44:17 ]
- 文字列リテラルにスコープってある?
char *func(){ return "Hello,World!!!"; } てあり?
- 306 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 11:56:07 ]
- >>305
大蟻。 つーか、常套手段。但し、const char *を返すべき。
- 307 名前:306 mailto:sage [2007/12/14(金) 11:58:04 ]
- >>305
書き忘れた。文字列リテラル自体の生存期間はstaticと同じく、プログラム開始時から終了時まで。
- 308 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 12:47:11 ]
- >>306-307
サンクス そうかconstだったな
- 309 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 15:35:34 ]
- スコープ(名前の有効範囲。コンパイル時にチェックされる)と
寿命(変数を置く場所がその変数のための場所である期間。実行時の話)は 別の話だぞー。
- 310 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 22:33:52 ]
- 参考書を見ながら独学でやっているプログラミング初心者です。
どうにもわからないことがあるので質問します。 #include<stdio.h> int main(void){ int a = 1; int b = 0; printf("short int型のサイズは%dバイトです。\n",sizeof(short int)); printf("int型のサイズは%dバイトです。\n",sizeof(int)); printf("long int型のサイズは%dバイトです。\n",sizeof(long int)); printf("float型のサイズは%dバイトです。\n",sizeof(float)); printf("double型のサイズは%dバイトです。\n",sizeof(double)); printf("long double型のサイズは%dバイトです。\n",sizeof(long double)); printf("変数aのサイズは%dバイトです。\n",sizeof(a)); printf("式a+bのサイズは%dバイトです。\n",sizeof(a+b)); return 0; } でコンパイルするとlong doublのところが10バイトになるのですが 私の持っている参考書の{やさしいC}では8バイト表記になっています。 何度も見直していますが間違いがわかりませんでした。 よろしくお願いします
- 311 名前:310 mailto:sage [2007/12/14(金) 22:40:24 ]
- 動作環境はWinXP
使用コンパイラはCpadというものです。
- 312 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 22:41:38 ]
- 型のサイズは環境によって違う。
long double は 8, 10, 16 バイトの3種類くらい見たことがある。
- 313 名前:310 mailto:sage [2007/12/14(金) 22:57:54 ]
- >型のサイズは環境によって違う。
long double は 8, 10, 16 バイトの3種類くらい見たことがある。 環境の違いがあるということも頭に入れて勉強を進めたいと思います。 ありがとうございました。
- 314 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 23:39:03 ]
- GCCとVCくらいしか使わん身としては
10バイトってのは珍しいね
- 315 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 23:52:31 ]
- コンソールで画面整形というか画面操作というか、正しい呼称はわからないのですが
例えば複数行に渡って 1111111 2222222 3333333 4444444 などと表示した後、それに被せる、ないしは消して同じ位置に出力というのは不可能でしょうか? 自分で調べてみて大量の\r\bを並べてみてもうまくいかなく今は大量の\nでごまかしごまかしやっています
- 316 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 00:08:05 ]
- そんなあなたに ncurses
でもwin用ってあったけ?
- 317 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 00:12:19 ]
- 調べてみると
利用可能OS AIX BeOS Cygwin Digital Unix (aka OSF1) FreeBSD GNU/Linux HPUX IRIX OS/2 SCO OpenServer Solaris SunOS あばばば、Cygwinか、いやしかし・・
- 318 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 00:14:37 ]
- PDCursesってのもあるでよ。
- 319 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 00:15:09 ]
- cursesならある。
VCか何かだったかな・・・。 でもそれよか、そのぐらいならエスケープシーケンス有功にした方が早いかもよ。
- 320 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 00:21:51 ]
- エスケープシーケンスっていうと自分のところでしか結局動かないことになっちゃうような・・?
PDCurses、なかなかいいページがみつからないのでちょっと試行錯誤してきてみます
- 321 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 00:33:06 ]
- fseek的なのほしかぁ、ありがとう
- 322 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 00:43:58 ]
- enum Foo { a = 0, b = 10, };
int main() { Foo x = Foo(3); } VC71ではこれがコンパイル出来るんだけど、 Foo xが列挙型Fooにない値を取り得るというのは正しい動作?
- 323 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 00:46:46 ]
- 結局windows.hが入ってきましたとさ
- 324 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 01:29:51 ]
- >>322
xは11になったろ?
- 325 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 02:23:22 ]
- >>324
いや、int(x) == 3だった。
- 326 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 07:52:18 ]
- >>314
Intel 系の CPU は浮動小数点を 10 バイトで扱ってるから別に珍しくはない。 Intel 系の環境なら、16 バイトになってても 6 バイトはパディングが入ってるだけ。普通なら。 昔は Turbo C++ とか 10 バイトだったような。 >>315 Win ならコンソール系の関数があるのは知っている。 使った事無いから目的の操作ができるかどうかは知らんが。 msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpfileio/html/Toppage_Console.asp
- 327 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 10:06:17 ]
- >>322
列挙Fooの値の範囲は 下限が0で上限が15になる。 xがその範囲の値ならFoo(x) はOK。
- 328 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 14:17:34 ]
- DLLでdosコマンドを呼び出すとき、ms-dosの標準ではないアプリなどですが
全くdos画面を出さずに呼び出すにはどうしたらいいですか? エラーが出るとdos画面が出てきてしまいます
- 329 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 14:23:54 ]
- >>328
SetStdHandle
- 330 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 14:43:49 ]
- >>329
サンクス 日本語サイト検索してもヒットが少ないんですけどどうやってその知識を得たんですが? 物知りさんですね
- 331 名前:デフォルトの名無しさん [2007/12/15(土) 16:57:51 ]
- ソースの行数とかクラスの数とかを計測したいのですが
何かいいソフトはないでしょうか? Linuxです
- 332 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 17:10:37 ]
- >>331
行数は wc でいけるでしょ。クラスの数は grep でだいたいいけそうだけど、 doxygen とか使ったほうがいいかもね。
- 333 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 17:11:37 ]
- 最近プログラミングをはじめたのですがWindowsXP+VC2005環境でexeファイルにtxtファイルをドラッグ&ドロップして
fstreamでファイル操作する簡単なプログラムを作ろうと思ったのですが ifstream file; file.open(argv[1]); こんな感じでargv[1]からファイルパスを受け取ろうとしてるのですが 平仮名片仮名がフルパスやファイル名に含まれているとエラーが出て開けません argv[1]からフルパス受け取ると2バイト文字は扱えないのでしょうか? ユニコード文字、マルチバイト文字の二つのコンパイルを試しましたが駄目でした。
- 334 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 17:17:06 ]
- 受け取れる
ドラックや入力する時点で空白で分離されているのでは
- 335 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 17:18:51 ]
- >>332
空行やコメントのみの行を除外したり、 関数の中身のみの行数を数えたり、とか、 いろいろしたいとなると wc だけじゃ辛いかもね。
- 336 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 17:19:58 ]
- >>333
VC2005 の fstream には日本語ファイル開けないバグがある。 www.google.co.jp/search?q=vc2005+fstream+setlocale
- 337 名前:333 mailto:sage [2007/12/15(土) 17:23:09 ]
- >>334 >>336
回答ありがとうございます。 VC2005特有の症状ってことですかね、検索しても全然わからないで困り果てていたので助かりました。
- 338 名前:331 [2007/12/15(土) 17:29:46 ]
- >>332>>335
ありがとう。なんとかなった
- 339 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 17:30:57 ]
- >>327
200でも-1でも0x7fffffffでもint n;Foo(n);でもコンパイル通ったよ。 ちなみにsizeof(Foo) == 4だった。 やっぱ列挙型引数でも範囲外チェックしなければいかんのかね…
- 340 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 18:28:20 ]
- >>339
>>327で書いたのは規格の話。 コンパイルが通ろうが実行できようが、規格上はは未定義。 つまり0〜15以外の値については実装依存。
|

|