【ANSI-C】 C言語なら俺に聞け! Part 128
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/06/26(月) 09:34:44まず問題を冷静に吟味してCの話か否かをはっきりさせてから質問しましょう。
質問する前には最低限検索を。
エラー(警告含む)が起きたのならばエラーメッセージを書きましょう。
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/250-7563469-9920244
他の過去ログはここに
http://nssearch.hp.infoseek.co.jp/clang/
前スレ
【ANSI-C】 C言語なら俺に聞け! Part 127
http://pc8.2ch.net/test/read.cgi/tech/1147375815/
GUIなどの標準Cではできない事の質問,ソース丸投げ、宿題、書籍 は
専門の別スレッド↓があるのでそこへさようなら。
【初心者歓迎】C/C++室 Ver.28【環境依存OK】
http://pc8.2ch.net/test/read.cgi/tech/1149815331/
C/C++の宿題を片付けます 68代目
http://pc8.2ch.net/test/read.cgi/tech/1151158759/
新・推薦図書/必読図書のためのスレッド 1
http://pc8.2ch.net/test/read.cgi/prog/1146889623/
0002デフォルトの名無しさん
2006/06/26(月) 10:09:480003デフォルトの名無しさん
2006/06/26(月) 12:46:08乙
しかし、何故「標準C」にしなかったのか?
0004デフォルトの名無しさん
2006/06/26(月) 15:38:36構造体のメンバを隠匿する、という方法を見たのですが、これはANSI Cで認められている方法でしょうか?
手元の書籍等見ても記述がなく、ネットで検索しても分かりませんでした。
// MyData.h
typedef const struct PrivateMyData*MyDataRef;
// MyData.c
struct PrivateMyData {
char a;
char b;
};
0005デフォルトの名無しさん
2006/06/26(月) 16:09:27不完全型(incomplete type)として認められている。
0006デフォルトの名無しさん
2006/06/26(月) 16:28:24し,入力される文字列が3文字以上であることは仮定して良い。ってどうゆうふうになりますかねぇ???
0007デフォルトの名無しさん
2006/06/26(月) 16:32:46void printCuttedString(const char * str)
{
#if 0 /* checkが必要なら
if (str == NULL || strlen(str) < 2) return;
#endif
printf("%.*s", strlen(str - 2), str + 1);
}
00087
2006/06/26(月) 16:35:30- #if 0 /* checkが必要なら
- if (str == NULL || strlen(str) < 2) return;
+ #if 0 /* checkが必要なら */
+ if (str == NULL || strlen(str) < 3) return;
0009デフォルトの名無しさん
2006/06/26(月) 16:40:17×printf("%.*s", strlen(str - 2), str + 1);
○printf("%.*s", strlen(str) - 2, str + 1);
0010デフォルトの名無しさん
2006/06/26(月) 16:40:48宿題は宿題スレへ
0011デフォルトの名無しさん
2006/06/26(月) 16:41:510012デフォルトの名無しさん
2006/06/26(月) 16:43:12了解です。
オブジェクト型・関数型・不完全型という分類を知りませんでした。
ありがとうございました。
0014デフォルトの名無しさん
2006/06/26(月) 17:10:19ありがとうございました。
0015デフォルトの名無しさん
2006/06/26(月) 17:25:55> おいおい、回答しているのに無視かい。
この手の質問に、わざわざ回答するのもどうかと思う。
>>10の対応で十分。
0016デフォルトの名無しさん
2006/06/26(月) 23:10:46main.cで適当なポインタpをhoge.cの関数に渡す
hoge.cの中で、受け取ったpにgを入れてあげる
main.cでpを扱う
というのはアリでしょうか?
/* main.c */
int main(void) {
char *p;
func_hoge(p);
printf("%s\n", p);
return 0;
}
/* hoge.c */
char g[1024] = "hogehoge";
void func_hoge(char *p) {
p = g;
}
0017デフォルトの名無しさん
2006/06/26(月) 23:29:02void func_hoge(char **p)
001816
2006/06/26(月) 23:43:17/* main.c */
int main(void) {
char *p;
func_hoge(&p);
printf("%s\n", p);
return 0;
}
/* hoge.c */
char g[1024] = "hogehoge";
void func_hoge(char **p) {
*p = g;
}
0019デフォルトの名無しさん
2006/06/27(火) 22:34:200020デフォルトの名無しさん
2006/06/28(水) 00:15:45*(ushort *)a=3;
この文はどういう意味なのでしょうか?
ポインターのポインターなら
ushort **a=3;
となると思うのですが・・・
よろしくお願いします
0021デフォルトの名無しさん
2006/06/28(水) 00:22:20何者かわからないaをushortのポインタとみなし(キャストし)、その
指し示す先に3を代入するという意味で、ポインタのポインタではありません。
0022デフォルトの名無しさん
2006/06/28(水) 00:34:26どうもありがとうございました
0023デフォルトの名無しさん
2006/06/28(水) 00:39:450024デフォルトの名無しさん
2006/06/28(水) 01:46:160025デフォルトの名無しさん
2006/06/28(水) 02:03:300026デフォルトの名無しさん
2006/06/28(水) 02:19:510027デフォルトの名無しさん
2006/06/28(水) 07:40:35全然問題ない。
(ushort *)aは右辺値だが、間接参照演算子の結果は必ず左辺値。
0028デフォルトの名無しさん
2006/06/28(水) 10:12:27[2] 問題文: 階乗を計算するdouble型の関数を使い、1から10までの階乗を表示するプログラムを作成してください。引数を使わないで、外部変数を使って、main関数からユーザー関数に、1から10までの値を送ってください。
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 今日
[5] その他の制限:お願いします。なるべく早く・・・
0029デフォルトの名無しさん
2006/06/28(水) 14:11:54別に竹石圭佑がゲイでもホモでもどーでもいいだろ。関わらずに無視すりゃ良いだけだし。
大体、ほっとけば勝手に犯罪起こして、また逮捕されて社会から消えるような野郎だしな。
0030デフォルトの名無しさん
2006/06/28(水) 14:18:32いっそ中退してしまえ間抜け。
0031デフォルトの名無しさん
2006/06/28(水) 14:38:240032デフォルトの名無しさん
2006/06/28(水) 16:31:28スレ違い
0033デフォルトの名無しさん
2006/06/28(水) 16:32:26> entypeってどんな型でしょうか?
標準Cにそんな型はない
0034デフォルトの名無しさん
2006/06/28(水) 17:00:06WindowsまたはLinuxで動かす予定のソフトを作っているのですが、
仮にそのどちらでもないOSでソースをコンパイルした場合に
#if defined (_MSC_VER)
func_windows();
#elif defined (__GNUC__)
func_linux();
#else
//コンパイル時にここに来たらエラー表示してコンパイルを中断する方法を教えてください。
//よろしく。
#endif
0035デフォルトの名無しさん
2006/06/28(水) 17:05:010036デフォルトの名無しさん
2006/06/28(水) 17:06:36errorディレクティブ。
その前にその条件ではWindowsかLinuxかになっていないぞ。
本当にWindows/Linuxで判別したいなら_WIN32/__linux__が定義されているかを使うべきだと思う。
0037デフォルトの名無しさん
2006/06/28(水) 17:15:30>本当にWindows/Linuxで判別したいなら_WIN32/__linux__が定義されているかを使うべきだと思う。
アドバイスありがとうございます。
私自身、どれを使ったらいいのか良く分からないまま_MSC_VERと__GNUC__を使っていました。
0038デフォルトの名無しさん
2006/06/28(水) 22:09:20while(fscanf(fp,"%c",char)!= EOF ){
こう記述すると、最初の1文字しか入りません。どうしたらいいですか?
0039デフォルトの名無しさん
2006/06/28(水) 22:12:57> どうしたらいいでしょうか?
ファイル操作について勉強するといいよ。
0040デフォルトの名無しさん
2006/06/28(水) 22:21:44教科書読んで最善をつくしたんですが
0041デフォルトの名無しさん
2006/06/28(水) 22:51:36そう記述すると、どうみてもエラーです。
0042デフォルトの名無しさん
2006/06/28(水) 23:04:21どうかくんですか?
0043デフォルトの名無しさん
2006/06/28(水) 23:13:40そして次はcharがchar型で問題が起きて聞きに来る予感。
0044デフォルトの名無しさん
2006/06/28(水) 23:17:07while(fscanf(fp,"%c",sp)!= EOF ){
でもだめだし
while(fscanf(fp,"%c",getchar(sp))!= EOF ){
でもだめなんです・・・・
0045デフォルトの名無しさん
2006/06/28(水) 23:22:41サンプルコードぐらいすぐ出てくるだろ。
0046デフォルトの名無しさん
2006/06/28(水) 23:30:580047デフォルトの名無しさん
2006/06/28(水) 23:34:31○ &sp
0048デフォルトの名無しさん
2006/06/28(水) 23:37:31fp= NULL;
do{
printf("\nデータファイル名を入力して下さい");
scanf("%s", datafile);
fp = fopen( datafile, "r" );
}while( fp == NULL);
while(fscanf(fp,"%c",&speech)!= EOF ){
fclose(fp);
}
最初の1文字しかよみこまれないです・・・・
0049デフォルトの名無しさん
2006/06/28(水) 23:41:04落ち着いて自分が何を書いてるのかよく考えてみろ
0050デフォルトの名無しさん
2006/06/28(水) 23:46:480051デフォルトの名無しさん
2006/06/28(水) 23:46:56分かってない人間は、まず基礎を学べ。
その「教科書」とやらを窓から投げ捨て、すぐに書店に走れ。
0052デフォルトの名無しさん
2006/06/28(水) 23:48:030053デフォルトの名無しさん
2006/06/28(水) 23:53:10文字読み込む度にfclose()してどうする。
覚えようと言う気が、全く感じられないし、
才能もセンスもないみたいだから、辞めた方がいいよ。
0054デフォルトの名無しさん
2006/06/28(水) 23:53:51while(fscanf(fp,"%c",&speech)!= EOF ){
fclose(fp);
}
これの意味を日本語で説明してくれ
0055デフォルトの名無しさん
2006/06/28(水) 23:54:30素直に答え教えろカス
0056デフォルトの名無しさん
2006/06/28(水) 23:56:04あれ?君宿題スレの人?
これからやるつもりだったけど、やる気なくなっちゃった。ごめーん。
0057デフォルトの名無しさん
2006/06/28(水) 23:56:490058デフォルトの名無しさん
2006/06/28(水) 23:57:2055は俺じゃないです
説明できないっす。適当に書きました
上で&って言われたので入れてみたんですが
0059デフォルトの名無しさん
2006/06/29(木) 00:00:130060デフォルトの名無しさん
2006/06/29(木) 00:06:34puts(speech);
}
にすると読み込めてるんですが、あとの処理では配列がからのままなんですが。。。
0061デフォルトの名無しさん
2006/06/29(木) 00:12:06始めから勉強し直せ!
0062デフォルトの名無しさん
2006/06/29(木) 00:12:38>>59
0063デフォルトの名無しさん
2006/06/29(木) 00:15:25初心者スレの住人に迷惑。
>>60
と言う訳で>>61
0064デフォルトの名無しさん
2006/06/29(木) 00:18:06試行するなりしてから書き込めよ
0065デフォルトの名無しさん
2006/06/29(木) 00:18:530066デフォルトの名無しさん
2006/06/29(木) 00:50:25少なくとも今までの姿勢からはそう見えない。
0067デフォルトの名無しさん
2006/06/29(木) 01:00:260068デフォルトの名無しさん
2006/06/29(木) 01:02:04いろいろやってみました。
しかし文字列にスペースが入るとまた配列の最初から上書きされてしまうみたいです
0069デフォルトの名無しさん
2006/06/29(木) 01:16:220070デフォルトの名無しさん
2006/06/29(木) 08:22:180071デフォルトの名無しさん
2006/06/29(木) 10:21:150072デフォルトの名無しさん
2006/06/29(木) 11:25:34言ってるようなもんだろう、
いつまでも居座ってるって事は。
0073デフォルトの名無しさん
2006/06/30(金) 09:36:150074デフォルトの名無しさん
2006/07/01(土) 03:56:020075デフォルトの名無しさん
2006/07/01(土) 04:01:500076デフォルトの名無しさん
2006/07/01(土) 04:55:50どこで聞いたらいいのか分からないのですが・・・
<-Bcc;
*;{ ...
{ #00ff00;kill(int;s1)>>;file);
w3 = exe->item;Goods*(Attach.)
alpha = exe->(TM)GOODIES;
act_probe = X->status.your_XP_adress;
act_layer = int;s2 = (x,$%&"#_LAYER(i++));
act_Demo = Xact_layer->list_of_files->next;
for(i=0;i,act_layer->(MS++GO;TO;DIE(=));
とか
act_probe = listt->zxcvb.local_XP_adress;
act_layer = GO/DEMO.sit(EXE-XXXX_LAYER(exe));
act_Demo = EXE_#layer->list_files->s1+=;xlan,0
for(i=0;i,exe->number_of_files;i++)
{
exe_#000000 = exec_#file->s2+=;b(off++));
ってなんかのソースですか?
それともプログラムですか?
教えてください
0077デフォルトの名無しさん
2006/07/01(土) 05:30:41GoodTimesだっけ?
ベースになってるネタはC言語のプログラムだけど、
それそのものはソースとしては成り立ってないし、何かのプログラムでもない。
そもそもウェブアートなんだから。
0078デフォルトの名無しさん
2006/07/01(土) 06:33:55main()
{
>>1氏ね;
}
みたいなものか
0079デフォルトの名無しさん
2006/07/01(土) 11:13:05前にビット演算スレでC言語向きなCPUについてぎゃーぎゃー騒いでたよ。
勿論標準Cの仕様にCPUの向き不向きなんて書いてないからここでやるな。
0080デフォルトの名無しさん
2006/07/01(土) 12:04:01wchar_t型の文字の半角、全角を判別する方法はありますでしょうか?
標準関数の中からは見つかれらなかったのですが、どなたかご存知
の方いらっしゃいましたらお願いします。
0081デフォルトの名無しさん
2006/07/01(土) 12:12:09ウェブアートなんですか。ありがとうございます。
0082デフォルトの名無しさん
2006/07/01(土) 12:47:10突っ込み所はたくさんあるものの、結論から言うとないです
0083デフォルトの名無しさん
2006/07/01(土) 17:28:070084デフォルトの名無しさん
2006/07/01(土) 19:03:40スレ違い。
0085デフォルトの名無しさん
2006/07/02(日) 01:37:59元GKだけど、なんか質問ある?
http://game10.2ch.net/test/read.cgi/ghard/1151582461/
204 名前:It's@名無しさん :2006/07/02(日) 00:34:08
IS…GK活動のソニー社内での呼称
NAVI…GK活動の指示がくるらしい。この指示に従って動く
ログ出し…上への書き込み報告
205 名前:It's@名無しさん :2006/07/02(日) 01:16:29
これがGKが居た証拠らしい・・確かに笑える。
154 :名無しさん必死だな :2006/06/29(木) 23:07:57 ID:bQ0GVGu7
http://www.google.co.jp/search?hl=ja&q=%EF%BC%B0%EF%BC%B3%EF%BC%93sugeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee%EF%BC%81%EF%BC%81&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
これだこれ
0086デフォルトの名無しさん
2006/07/03(月) 02:32:31使う文字にある程度制限があれば、
既知の半角文字だけ自前で判定すればいい。
0087デフォルトの名無しさん
2006/07/04(火) 08:06:00初心者に対して例として使いやすいからってんだろうけどマジかんべんしてください。
#include<stdio.h>をおまじないと言って無理やり次に進むならscanfやgetsも
別の関数で無理やりおまじないとして使って例を挙げてください。
特にこの関数は使ってはいけない関数ですとか言って、後の記述に
ちゃっかり使って例を出してたりした時にはもう死にそう。
初心者より
0088デフォルトの名無しさん
2006/07/04(火) 08:10:40そりゃぁあんた、実務経験のない人間が入門書を書いているんだからぁしかたがない。
尤も、実務経験のある人間で入門書を書けるセンスのある奴もなかなかいないわけだが。
0089デフォルトの名無しさん
2006/07/04(火) 08:29:04これらを一切使わずに、int 型変数に整数値を取り込む簡単な方法が scanf 以外にあるなら教えてください
0090デフォルトの名無しさん
2006/07/04(火) 10:21:18fgets()+atoi()で充分。
0091デフォルトの名無しさん
NGNG0092デフォルトの名無しさん
2006/07/04(火) 12:33:33そんな環境依存の本は「言語の入門書」にはならないよ。
0093デフォルトの名無しさん
2006/07/04(火) 19:26:42fread()+sscanf()はどうよ?
0094デフォルトの名無しさん
2006/07/05(水) 00:49:39メクラ?
>>90
>ポインタを教えずに
0095デフォルトの名無しさん
2006/07/05(水) 01:09:480096デフォルトの名無しさん
2006/07/05(水) 01:44:210097デフォルトの名無しさん
2006/07/05(水) 01:54:11/::::::::::::::::::::::::::/ `゙ヾi
/:::::::::::::::::;;::::::::::l -、 、__|
l:::::::::::::/;ヾ:::/ ,,.-、_ :i;!ーi
}:::::::::::::';r'ソ ゙' ,.-━;;;ァ; ;:!
、、__,....ノ;::::::::::::::iヾ ` ゙フ´ : i゙
/:::::::ヾ;、:::::::;:べリ. /_ i
ノi::::::::::::::::::ゞ'" . ,._ `ヾ:::;'
ノ;::::::::::::::::/ : :_ i: '゙``ー:/ 俺の出番かな?
i'i;、:;;r‐'" ̄``丶、 .ヾ::::゙:...._ '"゙:i'
/ -ー- 、、 `ヽ、ヾ:;;;;;;;;;;;;;;'ノ
0098デフォルトの名無しさん
2006/07/05(水) 03:15:41カン
0099デフォルトの名無しさん
2006/07/05(水) 03:32:200100デフォルトの名無しさん
2006/07/05(水) 07:27:280101初心者
2006/07/05(水) 09:51:52数列の長さを設定しました。
キーボードで文字を入力します。
入力した文字が設定した長さを超えるとごみが出て
次の入力を影響します。
設定した長さ以後のごみをメモリからとる方法は??
(どんなの関数?)
■ このスレッドは過去ログ倉庫に格納されています