【ISO/ANSI/JIS】 C言語なら俺に聞け! Part 131
scanf("%*[^\n]%*c");なんてできなかったっけ?
>>952 それだと、次の文字が\nだと[^\n]にマッチしないので、その時点でひっかかり
読み捨てることが出来ない。
scanf("%*[^\n]"); scanf("%*c");
ならおk
954 :
デフォルトの名無しさん:2007/09/15(土) 02:24:20
うーん勉強になるなあ。ここに書き込みしている人達て通算何年くらい勉強してきたんですか。
俺には凄過ぎっすよ。
955 :
デフォルトの名無しさん:2007/09/15(土) 02:26:09
名プログラマになる為に猛勉強だぜ。
ここは知ったかばっかり
知ったかな〜知ったかな〜うにゃうにゃ
はれってほれってひれんら〜
SHRT_MIN >= INT_MIN && SHRT_MAX <= INT_MAX 常に成り立つと思うのですが
sizeof(short) <= sizeof(int) は処理系に関係なく成り立ちますか?
はい。
ANSI C99準拠の標準ライブラリについて、詳しく説明しているサイトありませんか?
素直に本買ったほうがいいでしょうか?
っ[JIS X 3010]
963 :
961:2007/09/18(火) 19:21:05
>>962 ありがとう。でも高いねコレ…素直に本買います。
965 :
デフォルトの名無しさん:2007/09/19(水) 15:50:54
設計(PAD)でファイルを開いて読み込んでファイルの情報を構造体に格納するのって
どうやるか教えていただけませんか?
たぶんCの話じゃないと思うぞ
967 :
デフォルトの名無しさん:2007/09/19(水) 17:28:22
今C言語の勉強をしていて、ファイルの情報を構造体に格納して
それをメモリに展開するってゆーのをやってまして
fread
そんなもんファイルにどういう形式でデータが記録されていて
格納する構造体はどんなものかによるとしか言えん
PADは関係あるのか?
971 :
デフォルトの名無しさん:2007/09/19(水) 17:34:18
JIS X 3010-1993 を読むと
3.4
バイト
実行環境の基本文字集合の任意の要素を保持するために十分な大きさを持つデータ記憶域の単位。
1 バイト中のビット数は,処理系定義とする。
5.2.4.2.1
CHAR_BIT
ビットフィールドでない最小オブジェクト(バイト)におけるビット数
6.3.3.4
sizeof演算子の結果は,そのオペランドの(バイト数での)大きさとする。
sizeof(char) == 1
となっているのですが,ここから char 型オブジェクトのデータ記憶域での大きさは
1 バイトで 1 バイトは CHAR_BIT ビットと判断できるでしょうか?
マジっすか。バイト=8bitだと信じてました。
int型が、その処理系で一番速く処理できるビット幅、というのは聞いたことありますが・・・
973 :
967:2007/09/19(水) 17:58:00
今PADの最中なんです。
問題としてはファイルにある社員IDと氏名を構造体に格納し、
メモリに展開するというものです
C言語の規格改定って今でも進められているんでしょうか?
>>971 そう思って構わないはず。
>>973 常に8ビットを表す単位が必要なら、オクテットを使う。
976 :
967:2007/09/19(水) 19:03:57
文字の長さが2-10で変化するってどゆ意味ですか?
そもそも文字の長さってなんですか?
GUIなどの標準Cではできない事の質問,ソース丸投げ、宿題、書籍 は
↓
GUIなどの標準Cではできない事の質問、ソース丸投げ、宿題、書籍 は
何か気になるから変えてくれたら嬉しい
(char *)*char_list->c
という式が表す値は
(char *)型のポインタcが指しているデータ
(char *)型のデータ
のどっちなんでしょうか?
演算子の優先順位から、(char *)(*(char_list->c))
>>982 その式を見るとカッコ(キャスト)よりも*演算子のほうが優先されている
みたいなんですが、(1+2)*(3*3)のようなカッコとキャストとしてのカッコは
別物として扱われているんでしょうか?
そりゃ意味からして別物だろうが
ついでに言うと、関数呼出演算子の括弧も別物。
>>985 全部一緒くたにして考えてました。orz
最後にもう一つ、
char c = 'a';
char *pc = &c
printf("%d\n", (int)*pc);
予想では上のコードは4バイト分の整数を出力すると思ったのに、
実際にやってみたらa一つ分の97しか出力しませんでした。
これは何故なんでしょうか?
何を言ってるんだ、お前は
*(int*)pc とでもやりたかったのか?
>>986 何が言いたいか分からん。
97は2桁だろ。何が出て欲しいんだか。
>>986 charだろうがintだろうが10進数で出力したら97だろ
>>986 >4バイト分の整数
この部分を具体例をあげつつ詳細に説明してくれ
char c = 'a';
char *pc = &c;
printf("%d\n", sizeof((int)*pc));
4バイト(intの大きさ)分の整数が出力されているってのはあってるぞ
>>986 これでどうだ。
printf("%.8X\n", (unsigned int)(unsigned char)*pc);
ここにunsigned intへのキャスト演算子は不要だがサービスしておいた。
>>973 PADって構造化フローチャートみたいなやつ?
99というのはISOの年度だからANSI C99というのはおかしくないか
おかしいね。
ANSI C89
ISO C90
ISO C95(と言っていいのか)
ISO C99
個人的にはC89とかC99の前にANSIとかISOとか付いてる時点でキモい。
まぁキモいだけで、だからどうしようってほどじゃないけど。
埋め
梅
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。