C言語なら俺に聞け! Part 〈58〉
レス数が1000を超えています。これ以上書き込みはできません。
0001前スレ995
NGNG質問する前には最低限検索を。
GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo! (←ここ注目)
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへさようなら。
コンパイラを探しているなら >>2-13 を。
C machineはCに非ず
上記を逸した場合の結果は激しく未定義だゴルァ!!
C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
前スレ C言語なら俺に聞け! Part 〈57〉
http://pc2.2ch.net/test/read.cgi/tech/1053725121/
0002前スレ995
NGNGgcc
http://gcc.gnu.org/
【Win32用の開発環境のみ。】
gcc-cygwin
http://www.redhat.com/software/tools/cygwin/
gcc-mingw
http://www.mingw.org
Digital Mars C++
http://www.digitalmars.com/
Open Watcom
http://www.openwatcom.com/
Borland C++ Compiler 5.5.1
http://www.borland.co.jp/cppbuilder/freecompiler/
【ライセンスや機能などに問題あり】
Microsot C/C++ 13.0.9466(VC.NET)
http://www.microsoft.com/japan/msdn/netframework/downloads/
LCC-Win32
http://www.cs.virginia.edu/~lcc-win32/
CINT
http://root.cern.ch/root/Cint.html
めじろ++98
http://www.vector.co.jp/soft/win95/prog/se075910.html
0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG0006前スレ995
NGNGどいつもこいつも物臭ばっかりだな
0007デフォルトの名無しさん
NGNGYahoo!BBなんだよ・・・立てられた試しなし。
0008デフォルトの名無しさん
NGNG218 名前:デフォルトの名無しさん :03/06/06 22:40
#include <stdio.h>
main()
{
int a;
for(a=0;a<=25;a++;){
printf("%d"\n",a);
}
}
このソースのどこが悪い!?
219 名前:デフォルトの名無しさん :03/06/06 22:42
>>218
"の数
0009デフォルトの名無しさん
NGNG0010そこの219
NGNGなんだ文句あるか?
確かにforでセミコロンが一つ余計だが。
0012デフォルトの名無しさん
NGNGδA=∫ {(∂/∂x)Lδx+(∂/∂v)Lδv}dt
t1
プログラムにすると・・・・・めんどくせ
0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNG以上。
0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNGありがとうございました。携帯だったので遅レス。
0017デフォルトの名無しさん
NGNGところで、プロセスと関数の違いがよくわからないのですが、
プロセスはプログラムを実行している状態のことで、
プロセスの中で関数が処理されているという理解でよろしいでしょうか?
0018たく
NGNG異常終了って何ですか?
どういうときに発生するのですか?
具体的に教えてください。
よろしくお願いします。
0019デフォルトの名無しさん
NGNG一般保護例外とか。
プロセスが殺されたりとか(unixならkill/winならタスクマネージャ等)。
0020デフォルトの名無しさん
NGNG(Cの)関数はC言語の概念。プロセスはOSの概念。
ごちゃまぜに理解してはいけない。
CだけでなくOSの本も読むべし。
>>18
正常に終了できなかったときに発生するのでは。
0021デフォルトの名無しさん
NGNG関数の実行(処理)単位は「スレッド」。
実行するためのリソースの単位が「プロセス」。
0022デフォルトの名無しさん
NGNGmain関数からスレッドが抜けると、プログラムは終了する。
プログラムが終了すると、プロセスが解放される。
exit()はどの関数に居ても、強制的にプログラムを終了させる。
0023デフォルトの名無しさん
NGNGプロセス ttp://www.geocities.co.jp/SiliconValley/5634/t82D3_0013.html#2490
関数 ttp://www.geocities.co.jp/SiliconValley/5634/t82A9_0009.html#889
0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNG0026デフォルトの名無しさん
NGNG0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNG改行、タブ」ごとに区切って表示するプログラムが課題になりました。
連続したスペースなどを別々に評価するプログラムはすぐできました。
つまり、対象のファイルを
line1word1_line1word2
line2word1__line2word2
とすると(_はスペースとする)、正しくは
1:line1word1 2:line1word2 3:line2word1 4:line2word2
となるべきところが、
1:line1word1 2:line1word2 3:line2word1 4: 5:line2word2
となるプログラムです。そこで、これを修正すべく、文字列を
1文字ずつ評価する際に、一つ前の文字がスペース等であったかどうかを
記憶する変数を用いて、>>30のようにしたのですが、もっとスマートに
表現する方法はないものでしょうか?
なお、省スペースのため、コマンドライン引数の数のチェックや、
ファイルオープンエラーなどは省略しております。
filednumber→区切り番号
check→前の文字がスペース等であったかのチェック。デフォルトで0
0030デフォルトの名無しさん
NGNGmain(int argc,char *argv[])
{
int fieldnumber=1,check=0;
FILE *fp;
char ch;
fp=fopen(argv[1],"r");
printf("field%d : ",fieldnumber);
while((ch=fgetc(fp))!=EOF){
if(ch==' '||ch=='\n'||ch=='\t'){
if(check==0){
fieldnumber++;
printf("\nfield%d : ",fieldnumber);
check=1;
}
}
else{
check=0;
putchar(ch);
}
}
printf(" <<<end of file>>>\n");
fclose(fp);
}
003129
NGNGline1word1_line1word2
line2word1__line2word2
は、正しく
field1 : line1word1
field2 : line1word2
field3 : line2word1
field4 : line2word2 <<<end of file>>>
と表示できるようになったのですが、どうもまわりくどいような気が
してならないのです。どうか、よろしくお願いします。
0032デフォルトの名無しさん
NGNGfgets()で読みこみ、sscanf()でパース。
sscanf()はどこまで読み出したかを知ることができるって辺りがポイント。
0033デフォルトの名無しさん
NGNG003429
NGNGこんな便利な関数があったのですか…<sscanf()
僕が使っている独習C(1994)という本には載っていなかったので、今しがた
検索してきましたが、ぱっと見ただけでも、今よりきれいなソースになりそう
でした。もちっと検索先を読んできます。
ありがとうございました。
0035デフォルトの名無しさん
NGNG全標準ライブラリ関数の一覧がないの?
はるひこ本でさえあるのに。。。
003634
NGNG本が古いせいなのでしょうか…
いずれにせよ、ファイル入出力の項に入ったところのため、fscanf()、
sscanf()のどちらも初見の関数なので、今から勉強はじめているところです。
0037デフォルトの名無しさん
NGNG003834
NGNGHerbert Schildt という人の Teach Yourself C なる本の邦訳で、
独習C 翔泳社発行、1994/09/30初版1刷、1997/04/20初版7刷です。
先輩にもらった本なのですが、素直にK&R買ったほうがいいかも…?
今急に不安になって索引再度確認しましたが、やはりsscanf()は無い模様でした。
0039デフォルトの名無しさん
NGNG一冊で済まそうなんざ虫が良すぎるぜぃ。
0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNG0042デフォルトの名無しさん
NGNG0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNG標準関数を全部網羅してなかったからといってクズ本になるわけじゃない。
だがその本は読んだことがないのでクズ本じゃないともいえないw
で、買うのならK&RよりPractical Cをお薦めする。
http://www.oreilly.co.jp/BOOK/cpra/
これね。
0045デフォルトの名無しさん
NGNGそこ笑うとこじゃないよ
0046デフォルトの名無しさん
NGNG初心者向けでフリーのエディタって何でしょう?
0047デフォルトの名無しさん
NGNGkwrite
004946
NGNGwin用を・・・
0050デフォルトの名無しさん
NGNG0051デフォルトの名無しさん
NGNGTeraPad
0052デフォルトの名無しさん
NGNGxyzzy
0054デフォルトの名無しさん
NGNG杜やvectorであさっていろいろ使って自分にあったものを探せばよろし。
ただなんだし。
0055デフォルトの名無しさん
NGNG0056預言者
NGNG0057デフォルトの名無しさん
NGNG0058デフォルトの名無しさん
NGNGもうプログラミングする課題が尽きました。
課題を出していりるサイト知りませんか?
もしくは、課題を出してもらえませんか?
簡単なのでも結構ですので。
0059デフォルトの名無しさん
NGNG0060デフォルトの名無しさん
NGNG>>57のリンク先にゆけ
0061デフォルトの名無しさん
NGNGどの関数を使うんですか?
記述を教えてください
0062デフォルトの名無しさん
NGNGrand()%10+1
0063デフォルトの名無しさん
NGNGなんのためにプログラミング勉強してるんだろ。
課題なんてやってないで、とっとと自分の好きなソフト作ればいいのに。
課題をとくのを目的にプログラムやってるのだろうか…
0064sage
NGNG0065デフォルトの名無しさん
NGNGだれが作るか。
ボケが。
0066デフォルトの名無しさん
NGNGコンボボックスのドロップダウン型でドロップダウンした時の一番上の選択するやつのnIndex
って0ですよね・・・?そしたらドロップダウンしない普通の入力欄のnIndex
っていくつですか?−1でやるとエラーでちまうんですばい
0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNGスレ違いですばい
1嫁ですばい
0069デフォルトの名無しさん
NGNGvoid main()
{
int cnt;
int score[5]; /* 箱を5つ分、用意しています。 */
score[0] = 86;
score[1] = 65;
score[2] = 44;
score[3] = 92;
score[4] = 72;
for (cnt = 0; cnt < 5; cnt++) {
printf( "%d人目の数学の得点は%dです\n", cnt + 1, score[cnt] );
}
}
なんでかコンパイル通らないんですけど
0070デフォルトの名無しさん
NGNGエラーメッセージくらい書きなよ。
全角スペースを使っているからだと思うけど
007166
NGNG0072デフォルトの名無しさん
NGNGエラーメッセージ書けは同感だが
0073デフォルトの名無しさん
NGNGvoidとmainの間、項と演算子の間もか?
0074デフォルトの名無しさん
NGNG気になるだろ。
0075デフォルトの名無しさん
NGNG漏れも、このHPで勉強したなあ…
これそのままコピーしてないか?
それなら>>70で正解だと思う。
0076デフォルトの名無しさん
NGNGネタじゃなくてそういうことか・・・・
<PRE>使えよー
0077デフォルトの名無しさん
NGNGなんだここのをブラウザからそのままコピってコンパイル
とおらないとか言ってたのか。一回氏ね。
0078デフォルトの名無しさん
NGNGモティロン、ポインツァを駆使して。
0079デフォルトの名無しさん
NGNGなんかの雑誌に書いてあった
0080デフォルトの名無しさん
NGNG1.ファント・ホッフのi係数についてよくわかってない
2.C言語についてよくわかっていない
のどちらか。もしくは両方。
要求がわけわからなすぎ。氏ね。
0081デフォルトの名無しさん
NGNGみたいに記述して変数aに0〜9の数をランダムに代入したいのに、
実行するといつも同じ数しか代入されてません。
何かミスがありますか?しかも0です
0082デフォルトの名無しさん
NGNGrand()呼ぶ前に、
srand(time(NULL));
入れてみ。time.hをインクルードしてな。
0083デフォルトの名無しさん
NGNG真っ先にsrand(time(NULL));とでもしておけ。
0084デフォルトの名無しさん
NGNG0086直リン
NGNG0087デフォルトの名無しさん
NGNG0088デフォルトの名無しさん
NGNGは?
0089デフォルトの名無しさん
NGNGsrandで設定したものをrandで使うんだからグローバル変数なのかなと。
009089
NGNG0091デフォルトの名無しさん
NGNGケコーン おめ!
0092デフォルトの名無しさん
NGNG#include <time.h>
main(void)
{
srand(time(NULL));
int a=rand()%5;
printf("%d",a);
}
こんな感じですか?
0093デフォルトの名無しさん
NGNGそういうこと。
でもそれじゃコンパイル通らないと思うよ。
0094デフォルトの名無しさん
NGNG0096デフォルトの名無しさん
NGNGstdlib.h入れろ。
宣言より前に関数呼ぶな。
0097デフォルトの名無しさん
NGNGhttp://life2.2ch.net/test/read.cgi/offreg/1054655407/l50
ちなみにこれはコピペしてひろめてくれ。
0098デフォルトの名無しさん
NGNGint main(){
printf("\n今から質問をします");
getchar();
printf("何の日ですか?\n\n");
getchar();
printf( "1 : 〜の日\n2 : 〜〜の日\n3 : 〜〜〜の日");
int a;
a=getchar();
if(a==1){
printf("正解です!おめでとう!\n");
}
else{
printf("残念!正解は1でした\n");
}
}
0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNGどうしてもきれいなソースにならない!!!
インデントについて詳しく書いてあるページない?
0102デフォルトの名無しさん
NGNGint mainなのにreturnしてない
「今から質問します」がいきなり1回改行して出てくる上にそのあと改行しない
「3 〜〜の日」の後も同様
a=getchar() int型に直ですか
0103デフォルトの名無しさん
NGNG0104デフォルトの名無しさん
NGNG自動改行されてしまって上手く表示することができません。
どうすればよいのでしょうか?
0105デフォルトの名無しさん
NGNGソースきぼんぬ
0106デフォルトの名無しさん
NGNGgetcharはintで受けるべきなのだが…
0107106
NGNG0108デフォルトの名無しさん
NGNG#include <stdio.h>
main()
{
int q,w,e,r,t,a;
a=5;
printf("問題を5問出題します\n");
printf("第一問:10+10=? A.");
scanf("%d\n",&q);
if (q==20)
printf("正解です\n");
a=a+1;
if (q!=20)
printf("不正解です\n");
a=a-1;
0109デフォルトの名無しさん
NGNGscanf("%d\n",t);
if (t==1000)
printf("正解です\n");
a=a+1;
if (t!=1000)
printf("不正解です\n");
a=a-1;
if (a==10)
printf("おめでとう!全問正解です!");
else if (a==9)
printf("4問正解です。");
else if (a==8)
printf("3問正解です。");
else if (a==7)
printf("2問正解です。");
else if (a==6)
printf("1問正解です。");
else
printf("0点です");
return 0;
}
0110104
NGNGと表示させたいんです。
int n;
scanf("%d",&n);
printf("です。\n");
これだと、
56
です。
と表示されてしまうのです。
0111デフォルトの名無しさん
NGNGもう一度数字を入力しなきゃいけなくなります。
2つ入力すると次の問題に進みますが・・・
第一問の際に1問目の答えの20、続けて2問目の答えを入力すると2問目は正解と言われます。
続いて2問目が出てきますがこの時3問目の答えを答えないと3問目が不正解になります。
一つづつ問題と答えがずれてしまうんですが何故ですか?
5問目になると強制終了します
0112デフォルトの名無しさん
NGNG0113デフォルトの名無しさん
NGNGprintf("正解です\n");
a=a+1; /* ←必ず実行されるけどいいの? */
if (q!=20)
printf("不正解です\n");
a=a-1; /* ←必ず実行されるけどいいの? */
こういうのはifとelseにしよう。
あとa=a+1はa++、a=a-1はa--と書いた方がよい。
0114デフォルトの名無しさん
NGNGprintf("%dです。\n", n);
0115デフォルトの名無しさん
NGNG0116デフォルトの名無しさん
NGNG1足した後に1引くからな(笑)
0117デフォルトの名無しさん
NGNGんで、最後に
if(a == 5){
printf("全問正解です!\n");
}
else {
printf("%d問正解です。\n",a);
}
ってすんのさ。
0119108
NGNG>113
printf("第一問:10+10=? A.");
scanf("%d\n",&q);
if (q==20){
printf("正解です\n");
a=a++;
}
else {
printf("不正解です\n");
}
こんな感じでいいんでしょうか?
0120108
NGNGあーなるほど、そういうやり方も出来ますね。
簡潔なモノを書けるよう無い頭振り絞るようにします
それで、問題と答えがズレてしまうのは何故なんでしょうか・・・?
0121デフォルトの名無しさん
NGNG> a=a++;
違う。これじゃ有名な未定義コードになってしまう。
a++;とだけ書く。
0122デフォルトの名無しさん
NGNGforで回したほうが完結だし、あとで問題を増やすのも楽チンだな。
0123デフォルトの名無しさん
NGNG以前のままで。
0124デフォルトの名無しさん
NGNG出題時にその数式を元に答えを計算すれば、
問題と答えが食い違うことがなくなるな。
そうとう大変だけど。
ズレるのはなんでだろうねぇ。
>>108と>>109の間が肝心なところなんだろうけどぶった切れてるからわからない。
今ではelseの登場によってソースも変わってるだろうし。
0125デフォルトの名無しさん
NGNGどういう考えか興味ある。
0126デフォルトの名無しさん
NGNG0127デフォルトの名無しさん
NGNGヽ ̄ ゙̄\
\ ヽ \
ヽ ゙!
/ |
/ ,.イ
∠___/ :|`ヽ.、
ノ '! \-、
_,.=''1 ヽ, `'
ヽ'" i| |
! |
呼んだ〜?
0128デフォルトの名無しさん
NGNGvoid main(void)
{
int a;
int b;
char c;
////////////////////////////////////////////////////////////////
// 四則演算をするための値を入力 //
////////////////////////////////////////////////////////////////
printf("1つ目の数値を入力してください=");
rewind(stdin);
scanf("%d",&a);
printf("2つ目の数値を入力してください=");
rewind(stdin);
scanf("%d",&b);
printf("演算子を入力してください=");
rewind(stdin);
scanf("%c",&c);
0129デフォルトの名無しさん
NGNG// 結果の出力 //
////////////////////////////////////////////////////////////////
printf("\n\t\t実行結果の表示です\n");
if(c!='+')
{
if(c!='-')
{
if(c!='*')
{
if(c!='/')
{
if(c!='%')
{
printf("\t\t演算子がおかしいです。");
}
else if(b==0)
{
printf("\t\t%d%c%d=0では割れません。",a,c,b);
}
else
{
printf("\t\t%d%c%d=%d",a,c,b,a%b);
}
}
0130デフォルトの名無しさん
NGNG0131デフォルトの名無しさん
NGNG{
printf("\t\t%d%c%d=0では割れません。",a,c,b);
}
else
{
printf("\t\t%d%c%d=%d",a,c,b,a/b);
}
}
else
{
printf("\t\t%d%c%d=%d",a,c,b,a*b);
}
}
else
{
printf("\t\t%d%c%d=%d",a,c,b,a-b);
}
}
else
{
printf("\t\t%d%c%d=%d",a,c,b,a+b);
}
printf("\n\n\n\t\t\t\t\t\t");
}
0132デフォルトの名無しさん
NGNG課題で先生に
ifとfor文しか教えてないから他のは使うなといわれてます
0の時の判断もホントはしなくていいのですが
0133デフォルトの名無しさん
NGNG0134デフォルトの名無しさん
NGNG0135デフォルトの名無しさん
NGNG0136デフォルトの名無しさん
NGNG0137デフォルトの名無しさん
NGNG0138デフォルトの名無しさん
NGNG0139デフォルトの名無しさん
NGNG0140デフォルトの名無しさん
NGNGelseでいいだろ
0141デフォルトの名無しさん
NGNG縦に長くなり1枚に収まらないのでネストが一番かと
0143デフォルトの名無しさん
NGNG0144デフォルトの名無しさん
NGNG0145デフォルトの名無しさん
NGNGなにか一般的な方式(ライブラリとか)あるんでしょうか?
例えばこんなの
##########
# This is your ID info
##########
# your name
firstname=Taro
familyname=Yotsuya
# your birthday
year=2003
month=6
#day=5
day=6
聞きたいのは「こうすれば出来るじゃん!」っでなくて
「普通こうやるよねー」とか「これ使うといいよん」って意見で。
0146デフォルトの名無しさん
NGNG仕方がないかと。
0147デフォルトの名無しさん
NGNGstrtok か strchr を使うといいかと。
0148デフォルトの名無しさん
NGNGそれはそういうもの。
入力の行と、出力の行は別々になる。これはどうしようもない。
どうしても嫌なら、プログラムの1番最初と、printfの直前に
system("clear");
とでも入れておけ。
0149デフォルトの名無しさん
NGNG改行されずにすむね。
0150デフォルトの名無しさん
NGNGC:Ctrl+S D:Ctrl+C
どれでファイナルアゥンサー?
0151デフォルトの名無しさん
NGNGswitch のときに、
switch (..) {
case 'a':
...
というように、 switch と case でインデントをそろえるものと、
switch (...) {
case 'a':
...
のように、 switch と case で段差をつける2通りがありますが、どちらのほうが一般的ですか?
0152デフォルトの名無しさん
NGNGでもどっちでもコード見る時に大差はない
0153108
NGNG>122,124
ダイテル本持ってる人にしか解らないけどまだダイテル本の56Pのとこまでしか覚えてないんですよ
forとか解らないです。とりあえず今覚えてるので書けるかなーと思って書いてみたんですけれど。
>121
thxです
>125
今思うと何ででしょうね・・・・
自分でも解りません
0154108
NGNG#include <stdio.h>
main()
{
int q,w,e,r,t,a;
a=0;
printf("問題を5問出題します\n");
printf("第一問:10+10=? A.");
scanf("%d\n",&q);
if (q==20){
printf("正解です\n");
a++;
}
else {
printf("不正解です\n");
}
printf("第二問:10*10=? A.");
scanf("%d\n",&w);
if (w==100){
printf("正解です\n");
a++;
}
else {
printf("不正解です\n");
}
0155108
NGNGscanf("%d\n",&e);
if (e==1){
printf("正解です\n");
a++;
}
else {
printf("不正解です\n");
}
printf("第四問:10-10=? A.");
scanf("%d\n",&r);
if (r==0){
printf("正解です\n");
a++;
}
else {
printf("不正解です\n");
}
0156108
NGNGscanf("%d\n",t);
if (t==1000){
printf("正解です\n");
a++;
}
else {
printf("不正解です\n");
}
if(a == 5){
printf("全問正解です!\n");
}
else {
printf("%d問正解です。\n",a);
}
return 0;
}
0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNGこの変数を選んだ理由も知りたい(w
もっと分かりやすい変数名をつけよ。
0159デフォルトの名無しさん
NGNGそれと、ans[5]にして1問めから順にans[0], ans[1]…といれていったほうがいいかな。
0160デフォルトの名無しさん
NGNGちなみにifとelseの間は普通は1行空けたりしないぞ。
あと、みなさんへ。
ソースを晒すときは、めんどうでなければインデントは全角スペースで。
unixならviで:%s/ / /g
秀丸ならタブとかスペース4個を全角スペース2個にすればよろし。
めんどいけど。
0161デフォルトの名無しさん
NGNGと
char str[] = "HelloWorld";
の違いがわかりません。
どうなんですか?
0162YUIS
NGNGhttp://www.dvd-yuis.com/
豊富な品揃え!新品アダルトDVDが800円〜!
http://www.dvd-yuis.com/
最速発送!!すぐ届く!!
http://www.dvd-yuis.com/
よろしくね!!!
0163デフォルトの名無しさん
NGNGFAQだ。これを読め。
http://www.catnet.ne.jp/kouno/c_faq/c6.html#2
0164デフォルトの名無しさん
NGNG俺には分かるぞ!
喪前のキーボードのQから右に読んでみそ。
( ´A`)
0165デフォルトの名無しさん
NGNG0166デフォルトの名無しさん
NGNGありがとうございます。
sizeof()でサイズをとりたかったんですけど
んじゃあ、ムリなんですか?
sizeof(str)だと4(ポインタのサイズ?)が返ってくるんで。。
0167無料動画直リン
NGNG0168デフォルトの名無しさん
NGNGあなたが探してるのってこれだよね?この中にあったよ♪
http://alink3.uic.to/user/angeler.html
http://angelers.free-city.net/page002.html
0169デフォルトの名無しさん
NGNG上ならポインタのサイズ、下なら配列のサイズ
0170デフォルトの名無しさん
NGNG俺のマシンのrootのパスワードだ ( ´A`)
最後にyがつくけど
0171デフォルトの名無しさん
NGNGこういうんじゃダメなの?
#include <stdio.h>
main()
{
  char *mondai[5] = {
    "第一問:10+10=? A",
    "第二問:10×10=? A",
    "第三問:10÷10=? A",
    "第四問:10−10=? A",
    "第五問:10×10×10=? A"
    };
  int kotae[5] = {10+10,10*10,10/10,10-10,10*10*10};
  int i,in,count=0;
  printf("問題を5問出題します。\n");
  for(i=0;i<5;i++){
    printf("%s",mondai[i]);
    scanf("%d",&in);
    if(in==kotae[i]){
      count++;
      printf("正解です\n");
    }else{
      printf("不正解です\n");
    }
  }
  if(count==5) printf("全問正解です!\n");
  else printf("%d問正解です。\n",count);
}
0172デフォルトの名無しさん
NGNG だらけでみにくいぞ
0174デフォルトの名無しさん
NGNG何が?
0175デフォルトの名無しさん
NGNG>>171が。charの前とかA"の前とか。ほかにもいろいろ。
0176デフォルトの名無しさん
NGNGmain()
{
 char *mondai[5] = {
"第一問:10+10=? A",
"第二問:10×10=? A",
"第三問:10÷10=? A",
"第四問:10−10=? A",
"第五問:10×10×10=? A"
};
 int kotae[5] = {10+10,10*10,10/10,10-10,10*10*10};
 int i,in,count=0;
 printf("問題を5問出題します。\n");
 for(i=0;i<5;i++){
 printf("%s",mondai[i]);
 scanf("%d",&in);
 if(in==kotae[i]){
 count++;
 printf("正解です\n");
}else{
 printf("不正解です\n");
}
}
 if(count==5) printf("全問正解です!\n");
 else printf("%d問正解です。\n",count);
}
0177デフォルトの名無しさん
NGNG0178デフォルトの名無しさん
NGNG漏れダイテル本持ってないから解らんけど
0179デフォルトの名無しさん
NGNGそれか!(w
そんな命名方法考え付くのに感心する。
0180デフォルトの名無しさん
NGNG複数でプログラムを組むことになったので、読みやすい綺麗な書き方を見本にしたいので
参考になるサンプルソースないですか?
0181デフォルトの名無しさん
NGNG0182デフォルトの名無しさん
NGNG*BSD をハックする。
0183デフォルトの名無しさん
NGNG2項演算子の左右は空白を空けろ
forやifにぶら下がる処理は必ず{}でブロック化しろ
{}をif()の横から始めたり下から始めたり場所によって違うのはやめろ
コンマやセミコロンでデータや式を列挙する場合は空白を空けろ
変数の命名法はある程度の指針を決めておけ
コメントはちゃんと書け
めしは上手く作れいつもきれいでいろ
0184デフォルトの名無しさん
NGNG設計をきちんとしる。コーディング規約つくれ。クロスレビューしる。
0185デフォルトの名無しさん
NGNGCの初心者ならここに来るしかない!
質問、雑談何でもOK!
初歩的なことでももちろんOK!
もちろん、上級者の皆様にも来ていただきたいです。
0186デフォルトの名無しさん
NGNGメンバー全員で読め。っていうか印刷して配っておけ。
0187デフォルトの名無しさん
NGNGノイズが多いし。ハンガリアンは嫌いだ
0188デフォルトの名無しさん
NGNGファイルローカルだってさ(藁
内部リンケージだろ(藁
0189デフォルトの名無しさん
NGNGそんくらい目くじら立てるなよ。
どうせお前も他人が聞いたら変な言葉の使い方してるんだから。
0190デフォルトの名無しさん
NGNGさっきVBに技能検定があることを知り、つい笑ってしまいました。
それは置いといて・・
Cにも検定はあるんですか?
0191デフォルトの名無しさん
NGNGある。糞の役にも立たないのが。
それはそれとしてなぜ「C言語 検定」でぐぐるくらいしないのか。
0192デフォルトの名無しさん
NGNGスマソ
>>190
C言語検定とやらがあったと思う。名前が違うかもしれないけど。
0193デフォルトの名無しさん
NGNGここにあるやつかな?VBもあるね。
0194デフォルトの名無しさん
NGNG持ってるけど
履歴書埋めるくらいの役にしかたたない
ド素人ではありませんと証明するくらいか…
0195デフォルトの名無しさん
NGNGがんばろ
0196デフォルトの名無しさん
NGNG見せる相手によっては「こんなもので実力の証明にしようとしやがって」
とかバカにされるので注意な。ど素人以下の扱いを受けることあります。
0197デフォルトの名無しさん
NGNGだから、3級も2級も使えないって。
1級は見たことないが、こんな資格の1級まで目指すやつキモい。
>>196
そのとおりです。
0198デフォルトの名無しさん
NGNG履歴書に書くときは気をつけよう。
0199デフォルトの名無しさん
NGNG0200デフォルトの名無しさん
NGNG履歴書に200げと!って書いていい?
0201デフォルトの名無しさん
NGNG過剰なくらい資格をバカにする技術者もいるんで、注意が必要だな。
0202デフォルトの名無しさん
NGNG0203デフォルトの名無しさん
NGNGマジ?確かに必要ないかもな・・・
0204デフォルトの名無しさん
NGNG0205デフォルトの名無しさん
NGNG何が?
0206デフォルトの名無しさん
NGNGいや、とりあえず使う人間全員で統一した見解を持つのは必要だろ?
このリンク先が気に食わないなら、自分で統一ルールを作って晒してくれ。
>>204
誰も使いたがらない、不燃ゴミだな。
0207204
NGNGを使っていますとか言っているんですが、もうこの高校に入学した
時点で終わりですか?
0208デフォルトの名無しさん
NGNG0209デフォルトの名無しさん
NGNGその程度で高校が終わってるかどうか判断しようとする
お前が終わってるよ。確実にな。
0210204
NGNGいやフリーならhttp://pc2.2ch.net/test/read.cgi/tech/1035882599/1
があると思った。
0211デフォルトの名無しさん
NGNGC machineは標準Cと挙動が違いすぎるのでCの学習には全く適さない。
では、プログラミング一般の学習にはどうかというと、Cは抽象度が低すぎて
これまた適さないと思うんだな。何がいいかは意見が分かれるだろうけど、
おれだったらSchemeかOcamlかRubyかPythonあたりだと思う。
結論としてCの習得にもプログラミング一般の習得にも適さないので、
C machineは使わんほうがいい、と思う。その高校が終わってるかどうかはしらんw
0212デフォルトの名無しさん
NGNG普通はisalphaなどはテーブル参照で実装すると思うけど。
0213デフォルトの名無しさん
NGNG別にマクロであることさえ分かってればいいんじゃない?
0214デフォルトの名無しさん
NGNG「普通は」は使わないほうがいい
0215デフォルトの名無しさん
NGNG0216デフォルトの名無しさん
NGNG実装していない関数が多いことも問題点として挙げられる。
mallocはあるが、callocやreallocが無かったり、
atoi/atofはあるが、strtolとかが無い。
ただ、学校で「アルゴリズムの学習」程度ならまあ使える。
BCCやらGCCをインストールするのに比べて、設定が楽だ。
標準Cにはないグラフィック関係を、簡単に使えるのもいい。
でもC言語の勉強にはならないな。
0217デフォルトの名無しさん
NGNG0218デフォルトの名無しさん
NGNG作り甲斐があるねw
0219デフォルトの名無しさん
NGNGtelnetしてvi(なんでもいいけど)してcc(gcc)で十分だろ。
0220デフォルトの名無しさん
NGNGできる範囲で構わないんだな
0221デフォルトの名無しさん
NGNG0223デフォルトの名無しさん
NGNGま、ちょっと覚悟はしておけ。
0224335
NGNG+%a5%c9%a5%ad%a5%e5%a5%e1%a5%f3%a5%c8+(3).txt?bcWN4M_ACg9D8MEz
今度こそコーディングは終わったのですがデバックが・・・。
エラーログが微妙。
0226デフォルトの名無しさん
NGNG質問じゃないならいちいちageなくても。
0227デフォルトの名無しさん
NGNGスレ間違えていないか?
「スレ立てるまでも・・・」じゃなかったか?
0228デフォルトの名無しさん
NGNGscanf("%d",&atai2");
とかなってるとこあるぞ。
0229デフォルトの名無しさん
NGNG0230335
NGNG関数呼び出しに ) がない(関数 main )
文字列または文字定数が閉じていない(関数 main )
メイン関数閉じてないのはアップする時のミスです。
コンパイラではちゃんと閉じてコンパイルしてます。
0231デフォルトの名無しさん
NGNGなかなかうざい方ですね。
0232335
NGNG0233デフォルトの名無しさん
NGNGメイトリックスみたいに流れるコード(数字のみ)を作りたいんだけど、、、。
0234183
NGNG#include <stdlib.h>
main()
{
line10:printf("%d\n", rand() % 10);
line20:goto line10;
return 0;
}
0235デフォルトの名無しさん
NGNGせめてforかwhileで回してよ…
0236デフォルトの名無しさん
NGNG0238デフォルトの名無しさん
NGNGええとしですなw
0239デフォルトの名無しさん
NGNGどの関数使えばいいですか?
0240デフォルトの名無しさん
NGNGstrtok
0241デフォルトの名無しさん
NGNGどの関数使えばいいですか?
0242デフォルトの名無しさん
NGNGstrtok
0243デフォルトの名無しさん
NGNGjavaでもそんなメソッドないぞ!
0244デフォルトの名無しさん
NGNGstrtok
0245デフォルトの名無しさん
NGNG簡単な記述例をおねがいできないでしょうか?
0246デフォルトの名無しさん
NGNGstrtok
0247デフォルトの名無しさん
NGNGわからんにゃー。MSXに触ったことにゃーし
0248デフォルトの名無しさん
NGNGそんなもんで威張っている奴が居たらバカ。
0249デフォルトの名無しさん
NGNG#include <stdio.h>
#include <string.h>
int main()
{
char str[]="I!have no!money"; /* ←必ず書き換え可能なものにすること */
char *delim="!",*p;
printf("%s\n",strtok(str,delim));
while(p=strtok(NULL,delim))
printf("%s\n",p);
return 0;
}
出力結果
I
have no
money
0250デフォルトの名無しさん
NGNG参考にさせていただきます。
0251デフォルトの名無しさん
NGNG教えてください。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1055071590
どうすれば 表示できるようになりますか?
0252デフォルトの名無しさん
NGNGちなみに二文字以上の文字列で区切ろうとする場合にはstrtokは勧められないので注意を。
第二引数のそれぞれの文字で区切ろうとするからね。
0253デフォルトの名無しさん
NGNG#include <stdio.h>
#include <math.h>
int main(int argc, char* argv[])
{
const double PI = 3.1415926535;
const int pix= 40;
for (double i=0.0; i < 360.0; i++) {
double ans = sin(i/PI/2);
int loop = ans * pix;
if (loop >= 0) {
for (int sp=0; sp < pix; sp++) {
printf(" ");
}
for (int j=0; j < loop; j++) {
printf("+");
}
}else {
for (int sp=0; sp < pix+loop; sp++) {
printf(" ");
}
for (int j=0; j > loop; j--) {
printf("-");
}
}
printf("\n");
}
return 0;
}
0254名無し@沢村
NGNG一人がもう一人のちんぽを見た。
そいつのちんぽはドス黒かった。使い古した後がうかがえた。
「おまえ、ずいぶん女を泣かせただろ?」
「いや、おれはまだ童貞だ」
そいつのちんぽはせんずりで使い古したのだった。 ");
0255デフォルトの名無しさん
NGNGここはCスレだYO
0256デフォルトの名無しさん
NGNGchar a;
CString b;
a = (LPCTSTR)b;
どこが悪いっすか?
0257デフォルトの名無しさん
NGNGStringなのにcharに代入できるの?
0258デフォルトの名無しさん
NGNGchar a[200];
CString b = "aiueo";
a = (LPCTSTR)b;
すれ違いスマソ。
え、てかできないんすか?
0259デフォルトの名無しさん
NGNG0260デフォルトの名無しさん
NGNGMFCへ
b.GetBuffer();
0261デフォルトの名無しさん
NGNGCの範囲ならそれはできない。配列名に代入は不可。C++はどうだか知らないけど・・・
>>259
記号定数の定義
0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNG了解です。MFCいってきます
0264デフォルトの名無しさん
NGNG文字数取得の後どうすれば?
0265デフォルトの名無しさん
NGNG0266デフォルトの名無しさん
NGNGちょっと試してきまつ
0267デフォルトの名無しさん
NGNGchar型でないと使えないのでわ?
0268デフォルトの名無しさん
NGNGCString は LPCTSTR (const char FAR *) へのキャスト演算子をオーバーロードしてあるので
CString 「から」の strncpy でのコピーは可能。
CString 「へ」の strncpy でのコピーは(GetBuffer使わないと)無理だけど。
0269デフォルトの名無しさん
NGNGiRadioCheckId = "kakikukeko";
CString str(a);
str = str + iRadioCheckId;
a = (LPCTSTR)iRadioCheckId.GetBuffer(iRadioCheckId.GetLength());
AfxMessageBox(a);
でコンパイル通らないっす。なぜにぃ
0270not 267
NGNG0271デフォルトの名無しさん
NGNGサンクス。試してみます。
0272デフォルトの名無しさん
NGNG配列名には代入できないって言ってるでしょ。
0273デフォルトの名無しさん
NGNG0274デフォルトの名無しさん
NGNG0275デフォルトの名無しさん
NGNG0276デフォルトの名無しさん
NGNGそれともchar *で受け付けるライブラリでも使うの?
0277デフォルトの名無しさん
NGNGttp://www.geocities.co.jp/SilkRoad/4511/vb/urlenc_c.htm
使おうと思ってるんですけど他にあるんすか?
0278デフォルトの名無しさん
NGNG0279デフォルトの名無しさん
NGNG0280デフォルトの名無しさん
NGNG0281デフォルトの名無しさん
NGNGまぁ、自覚してるからいいんじゃない?
>>277
>これはあくまでも「参考」程度にとどめて、悪いところを直して使って下さいね。
なので、コピペでそのまま使わないで、
自分で関数を作るか、他のを探すかするのを勧める。
まぁ、よりひどいのを作られても困るので一応何とかする方法を。
csource の型を const char* に変更して
(ついでに cbuffer の型を char* に変更して)、
sprintf(ctemp, "%%%02X", *(csource + lcount));
を
sprintf(ctemp, "%%%02X", (unsigned char)*(csource + lcount));
に変更してやれば、
csource へ CString オブジェクトをそのまま渡せるはず。
0282デフォルトの名無しさん
NGNGダメソースの見本だな。
0283デフォルトの名無しさん
NGNG英数字とスペースと_-.*以外を%+二文字の16進数字列にして、スペースを+におきかえるだけだよね?
0284デフォルトの名無しさん
NGNGすれ違いの馬鹿野郎にまじでどうもです。
早速ためすぞこらー
0285デフォルトの名無しさん
NGNGCのコードC++に書き換えなきゃだめかぁ。
>>276
で言ってた方法とは??
0286デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1055071590
Cでやってるから ここでいいっしょ?
0288デフォルトの名無しさん
NGNGどもでした!
0289デフォルトの名無しさん
NGNGその程度の仕様っすか。
ならこんなんでええな。
全角空白を半角空白かタブにでも置換してから使うように。
#include <stdio.h>
#include <ctype.h>
#include <assert.h>
void UrlEncode(char *dst, size_t size, const char *src)
{
size_t iDst;
size_t iSrc;
char let;
for(iSrc = iDst = 0; src[iSrc] != '\0'; ++iSrc) {
let = src[iSrc];
if(isalnum(let) || strchr("_-.*", let) != NULL) {
if(iDst >= size - 1) {
break;
}
dst[iDst] = let;
++iDst;
} else if(let == ' ') {
0290デフォルトの名無しさん
NGNGbreak;
}
dst[iDst] = '+';
++iDst;
} else {
if(iDst >= size - 3) { /* 3 はエンコードのサイズ */
break;
}
sprintf(&dst[iDst], "%%%02X", (unsigned char)let);
iDst += 3;
}
}
assert(0 <= iDst && iDst < size);
dst[iDst] = '\0';
}
0291デフォルトの名無しさん
NGNGロジックそのままでいいから、CStringかstringをつかって書き直したほうがいいな。
0292デフォルトの名無しさん
NGNGちょっくら試してみます!今度こそうまくいけぇ〜
0293デフォルトの名無しさん
NGNG0294デフォルトの名無しさん
NGNGUnicode識別子はサポートされないエラーが大量発生です。
環境はVS.NETです。
0295デフォルトの名無しさん
NGNG全角スペースを半角スペースに置き換えた?
0296デフォルトの名無しさん
NGNG全角空白を半角空白かタブにでも置換してから使うように。
全角空白を半角空白かタブにでも置換してから使うように。
全角空白を半角空白かタブにでも置換してから使うように。
全角空白を半角空白かタブにでも置換してから使うように。
全角空白を半角空白かタブにでも置換してから使うように。
全角空白を半角空白かタブにでも置換してから使うように。
全角空白を半角空白かタブにでも置換してから使うように。
全角空白を半角空白かタブにでも置換してから使うように。
全角空白を半角空白かタブにでも置換してから使うように。
0297デフォルトの名無しさん
NGNGあぁもう自分が嫌
0298デフォルトの名無しさん
NGNGやっぱりだめですか?
0299デフォルトの名無しさん
NGNGんーと、parse 目的なの〜?
Windows なの〜?
だとしたら、msxml なんかに任せたほうがいいんじゃないの〜?
0300デフォルトの名無しさん
NGNGchar *dst,←文字へのポインタ?
size_t size,←文字数?
const char *src←これ何・・・?
0301デフォルトの名無しさん
NGNGそのポインタが指す先の内容を書き換えないという宣言だ。
もし書き換るようなそぶりを見せたらコンパイラが叱ってくれる。
0302デフォルトの名無しさん
NGNGsizeはdstの領域の大きさだと思う。
0303301
NGNG0305デフォルトの名無しさん
NGNGparse目的です。
0306デフォルトの名無しさん
NGNGint型をchar型に変換(文字列のポインターを渡す?)関数ってのを知りたいのですが
教えてください。
0307デフォルトの名無しさん
NGNG0308デフォルトの名無しさん
NGNGUrlEncode();の引数には何をいれれば・・・?
srcを変換した物をdstに入れるって事は
dst=変換後に入れる変数のポインタ
size=その大きさ
src=変換する文字列へのポインタ
でよい?
あとこのプログラムCStringを渡せないっすか・・・?
0309デフォルトの名無しさん
NGNG0310デフォルトの名無しさん
NGNGsecとしては渡せるけどdstとしては渡せない。
0311デフォルトの名無しさん
NGNGまじすいません。あと少しだけおながいします
ここまで来て他スレで聞いたらわけわかんなくなっちまうんで
>>310
確かに渡せました。
>>289
この関数日本語入れるとエラー出ちまいます。
マジでお手数ですが直していただけるとうれしいです。
それまで自分で直してみるけどむりっぽ。。
0312デフォルトの名無しさん
NGNG0313デフォルトの名無しさん
NGNGsizeは充分な大きさにしている?
最悪srcに渡す文字列の3倍必要だけど
0314デフォルトの名無しさん
NGNGできました!マジサンクスです!!
>>313
三倍確保してます
0315デフォルトの名無しさん
NGNG%E3%81%82←Googleのエンコード
%A4%A2←Yahoo!のエンコード
%82%A0←上の関数のエンコード
ぐぐるのエンコードにできまつか??
0316デフォルトの名無しさん
NGNG0317デフォルトの名無しさん
NGNG0318デフォルトの名無しさん
NGNG何がしたいのか知らんが、GoogleだってSJISで渡せば同じになる。
0319デフォルトの名無しさん
NGNGSJISで渡す方法はどうすれば??
とりあえず検索したら
ttp://alfin.mine.utsunomiya-u.ac.jp/~niy/algo/j/jis2sjis.html
こんなんでてきたんすけど違うかなぁ。。
上の関数ではJISを使ってるんですか?
0320デフォルトの名無しさん
NGNG0321デフォルトの名無しさん
NGNG投稿フォームのあるページをS-JISで書けば多くのブラウザはS-JISで送ると思うけど・・・
Cと関係ないね。
0322デフォルトの名無しさん
NGNG| |
| |_∧
|_|ω・`) <意地悪しないで教えてほしぃぽ
| と )
| ̄|u' 旦
""""""""""
0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNGいずれにせよスレ違いなのでお帰り下さい。
0325デフォルトの名無しさん
NGNG問題は、あんたの使っている環境だ。
0326デフォルトの名無しさん
NGNGまじでもうちょっと頼みます。
いまさら他にも行けないので。。。
プログラムが分かるように変換とまでしか分かってないです
>>325
環境って何を書けば・・・?
VS.NET WinXP IE6
とかですか??
0327デフォルトの名無しさん
NGNGhttp://www.vector.co.jp/soft/win95/util/se020949.html
0328デフォルトの名無しさん
NGNGまず何がしたいのか書け。
URLエンコードなら、既にできてる。
0329デフォルトの名無しさん
NGNG意味が分かった!SJISで渡したら確かにエンコード結果一緒でした。
ググルはUnicodeでやっとりました。。
0330デフォルトの名無しさん
NGNGEUCの文字列を関数に渡せばShiftJisがエンコードされるし、
・・・
自分が渡した漢字がどんなコードかも判ってないなら先ずはそこからだな。
0331デフォルトの名無しさん
NGNGソフト見てもらったほうが早い気がするんで上げます
http://ex.2y.net/guguruno.zip
0332デフォルトの名無しさん
NGNG見ないよ。
0333デフォルトの名無しさん
NGNGさらっと見ていただけたらいいんすけど。
じゃあ口答で。。
ソフトで検索ワード入れてアドレス直接精製して
そこから直接ぐぐる検索するためにソフト作ってます。
0334デフォルトの名無しさん
NGNG0335デフォルトの名無しさん
NGNGさっぱりわからんかったんでアドレス精製しようと
思ったんです。
0336デフォルトの名無しさん
NGNGCの初心者ならここに来るしかない!
質問、雑談何でもOK!
初歩的なことでももちろんOK!
もちろん、上級者の皆様にも来ていただきたいです
0337デフォルトの名無しさん
NGNG何でそんな面倒なことをCでやろうと思ったのかよくわからん…
もっと楽なのがあるだろうに。Perlだとかなんだとか。
0338デフォルトの名無しさん
NGNGさっきのDLL使えばなんとかなります?
0339デフォルトの名無しさん
NGNG0340デフォルトの名無しさん
NGNGおとなしく消えますです
どもでした
0341デフォルトの名無しさん
NGNGなるほどそういうことか。
じゃあまず、文字コードとか、エンコーディングとかでぐぐって、
そのあたりを勉強してみなさいな。複雑でいやになるから。
作ってみたかった程度で手におえるものじゃなかったりするんだよな…
0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNG>http://www.google.com/search?lr=lang_ja&q=はぁ?&num=100
これで十分使えるぞ。
0344デフォルトの名無しさん
NGNG>http://www.google.com/search?q=はぁ?
0345デフォルトの名無しさん
NGNG幸せだね
0346デフォルトの名無しさん
NGNGhttp://www.google.com/search?q=は?
ぜんぜん使えねぇ。
0347デフォルトの名無しさん
NGNGもう欝で死にそうです
0349デフォルトの名無しさん
NGNG何が?
>>343-344は相手にしなくていいよ
0350デフォルトの名無しさん
NGNGどっちみちスレ違いだけど。
0351デフォルトの名無しさん
NGNG実際文字化けしている。
よって使えない。
分かった?
0352デフォルトの名無しさん
NGNG0353デフォルトの名無しさん
NGNG0354デフォルトの名無しさん
NGNGあるよ。C/C++には無いみたいだが。
0355デフォルトの名無しさん
NGNGもまえらが使っている有用なライブラリ公開すれ。
まずは>>356から。
0356デフォルトの名無しさん
NGNG0357デフォルトの名無しさん
NGNG0358デフォルトの名無しさん
NGNG音鳴らすのに今日初めて使ってみた
0359デフォルトの名無しさん
NGNG0360デフォルトの名無しさん
NGNG0361デフォルトの名無しさん
NGNGfoo(void *bar) {
というのを見かけたのですが、 この void 型のものはどういう型を受け取ることが出来るのですか?
0362デフォルトの名無しさん
NGNG0363デフォルトの名無しさん
NGNGいろいろ
intとかcharとか
関数に渡す時は、キャストすんのかな
0364デフォルトの名無しさん
NGNG>>361
ポインタなら何でも
0365デフォルトの名無しさん
NGNGvoid * … int や char などと違って、
ポイント先のバイト容量が不明なポインタ型
0366デフォルトの名無しさん
NGNGポインタの++できんつーことか? 1なら charとかわらんな
0367デフォルトの名無しさん
NGNG0368デフォルトの名無しさん
NGNG>>367
sizeof(void)が1を返すので判るとおり、確かにchar *に似た振る舞いをするね。
でも、普通のコンパイラなら警告出すんじゃない?
ついでに言うと、char *を渡して、内部でint *として参照すると
バスエラーを起こしかねないので要注意で。
0369デフォルトの名無しさん
NGNGあと、プロトタイプがあれば、別にキャストしなくても
ポインタでさえあれば何でも渡せるぞ。
0370デフォルトの名無しさん
NGNG0372デフォルトの名無しさん
NGNGコンパイラの違いだったかな
0373デフォルトの名無しさん
NGNGvoid *を他のポインタに代入するときのことだと思う。
char *p=(void *)0;とやるとC++ではエラー。だからmallocの戻り値も
0374373
NGNG0375369
NGNGint *とか*がついてるもんだと思ってた。
そんな非常識なことはありえないと思って勝手に補完して読んでたらしい。
すまんすまん。確かにキャストが必要です。
0376デフォルトの名無しさん
NGNGgccか?
たしかgccではvoid *に対する演算が可能なように拡張されてるけど。
0377デフォルトの名無しさん
NGNG0378デフォルトの名無しさん
NGNGどうやって書くか教えてください!!
0379デフォルトの名無しさん
NGNG数学の勉強しる!
0380デフォルトの名無しさん
NGNGdouble pi = acos(-1);
0381デフォルトの名無しさん
NGNG0382デフォルトの名無しさん
NGNG電気通信大学の方ですか?
0383デフォルトの名無しさん
NGNGhttp://3.141592653589793238462643383279502884197169399375105820974944592.jp/
ここをダウンロードして表示する
0384デフォルトの名無しさん
NGNG少しは調べれ!
http://hp.vector.co.jp/authors/VA014765/pi/
0385デフォルトの名無しさん
NGNGそれが(・∀・)イイ!
0386デフォルトの名無しさん
NGNGとるんだよね!最近のは32bitだから4バイトだけと16bit機は2バイトになる事
知らなくて大変な思いをしましたね。C++はCの要領でプログラムするやつ多いから
カプセル化していないのがいけないといったら、先輩に人のせいにするなと
怒られた。昔からずっと人のせいにするやつなんだよね俺!!!
0387デフォルトの名無しさん
NGNG0388デフォルトの名無しさん
NGNG0389デフォルトの名無しさん
NGNG32 ビット機が出てすぐの頃、
というか MS-DOS の時代には
殆ど 16 ビットエミュレーションで動いてたので
int は 16 ビットが普通だったな。
今でも LSI-C 試食版は 16 ビットだな。
64 ビット機では int が 32 ビットになるかと言うと、
これまた複雑な問題があってだな、
int を 32 ビットだと仮定したプログラムが多いから
int は 32 ビットのままにするのが主流らしい。
ただ、64 ビットにするコンパイラもないことはないらしい。
int のサイズは規格では
「その環境で整数を表現するのに一番適当なもの」
と決められていて、別にレジスタサイズと決まってるわけではない。
0390デフォルトの名無しさん
NGNG誰か↑の一文を日本語に訳して下さい。
0391デフォルトの名無しさん
NGNG例外処理は認められておりません
ただちに管理者に連絡してください
0392デフォルトの名無しさん
NGNG微妙に誤解が含まれている。
0393デフォルトの名無しさん
NGNGその誤解とは何か、理由付きで指摘しないと意味のないレスになる。
0394デフォルトの名無しさん
NGNG0395デフォルトの名無しさん
NGNG16ビット整数の方が速くなったら、int=16ビットに変更しないといけない。
なんてことになりかねないので速度だけで選ぶわけではないと思うが…。
0396デフォルトの名無しさん
NGNG"one",
"two",
"three",
};
とあったときに、 str をもとにして、文字列の数(3)を調べる方法はありますか?
0397デフォルトの名無しさん
NGNG要は配列strの要素数を得られればいいんでしょ?
sizeof str/sizeof str[0]
0398デフォルトの名無しさん
NGNG例によって過去の資産の絡みなんでしょうか?
0399デフォルトの名無しさん
NGNG0400デフォルトの名無しさん
NGNGおらおら、おまえらうちの商品買えよ!
0401デフォルトの名無しさん
NGNG0402デフォルトの名無しさん
NGNG単にコンパイラ作ってるところの都合なだけだ。
0403デフォルトの名無しさん
NGNG素早いレスどうもです
よく使うintに64bit割り当ててもあまり得にならない
メモリの無駄遣いとも考えられますね
64bitが必要ならlonglongで宣言してるだろうし
longlongの処理を64bitCPU用に最適に
(1レジスタで処理するように)コンパイルできていれば
それで64bitコンパイラの役目は果たしているともいえるかも
0404デフォルトの名無しさん
NGNGint幅が変わると調整に手間がかかりそうですね
実装によってはライブラリの書き直しとか
テストもしないといけないだろうし
0405デフォルトの名無しさん
NGNG0406デフォルトの名無しさん
NGNG仮に int が 64 Bit になれば、
long は 64 Bit 以上になる。
long long は(ry
0407デフォルトの名無しさん
NGNGlong >= int >= short
0408デフォルトの名無しさん
NGNGできますた。
サンクスコ。
0409デフォルトの名無しさん
NGNG何を指摘したい?
0410デフォルトの名無しさん
NGNGhttp://www.zork.org/xxl/xxl.html
使ってる奴いる?
0412デフォルトの名無しさん
NGNG>>411のネームランは無視してくれ、このスレでの番号じゃない。
0413デフォルトの名無しさん
NGNG以上=「>=」
より大きい=「>」
0414デフォルトの名無しさん
NGNG以上という言葉の意味を辞書で引け。
0415デフォルトの名無しさん
NGNG未満と以下は存在するのに...日本語の言語仕様のバグ?
0416デフォルトの名無しさん
NGNGちがうか・・・
0417デフォルトの名無しさん
NGNG0418デフォルトの名無しさん
NGNG超過でいいみたい
0419デフォルトの名無しさん
NGNG0420デフォルトの名無しさん
NGNG英語にゃ「以上」や「以下」が無いがな。
0421デフォルトの名無しさん
NGNG0422デフォルトの名無しさん
NGNG0423デフォルトの名無しさん
NGNG0424デフォルトの名無しさん
NGNGこの宣言文が一向に解読できない
signal is function 〜謎〜 returning void
誰か教えれ
0425C語初心者
NGNGんで、学ぶにあたって勉強するのにいい初心者用のわかりやすいC言語の本とかありますか?
あったら情報教えてください。よろしくお願いします
0426デフォルトの名無しさん
NGNG戻り値の型 void (*) (int)
第一引数の型 int
第二引数の型 void (*) (int)
関数名 signal
第一仮引数の名前 sig
第二仮引数の名前 func
void (*) (int) を typedef して考えるとシンプルになる。
typedef void (*func_t)(int);
func_t signal(int sig, func_t func);
0427デフォルトの名無しさん
NGNGこの板の一番上、ローカルルールの書いてあるあたりを参照。
「推薦図書・必読書スレ」へのリンクがある。
0428デフォルトの名無しさん
NGNGサンクス、よく分かった。あんた神
signalは戻り値が関数へのポインタで
引数にint型変数と関数へのポインタをとる
関数ということね・・・ややこしすぎ
0430C語初心者
NGNG再帰を利用して迷路を解く。
外部変数
int position [9][9]={
{1,1,1,1,1,1,1,1,1},
{1,0,0,0,0,0,0,0,1},
{1,0,1,1,1,1,0,1,1},
{1,0,0,0,0,1,0,0,1},
{1,1,1,1,0,1,1,0,1},
{1,0,0,0,0,1,0,0,1},
{1,1,0,1,1,0,1,1,1},
{1,0,0,0,0,0,0,0,1},
{1,1,1,1,1,1,1,1,1}};
上の迷路で"1"が壁で、"0"が通路です。
Startは(y,x)=(1,1) Goalは(y,x)=(7,7)です。
関数 int visit(int y,int x) を使ってください。
一度通った道には2を、解の道には3を入れてください。
で、最短距離の座標と ,
壁を*、迷った所を?、解を0で表示する
プログラムをお願いします。表示にはprintfをお願いします。
0431C語初心者
NGNG04321
NGNGオススメの解説ページみたいなのありますか?
0433デフォルトの名無しさん
NGNG0434デフォルトの名無しさん
NGNG0435デフォルトの名無しさん
NGNGでいいんすか?
0436デフォルトの名無しさん
NGNG基本情報処理の試験13年の秋か春に載ってるよ!
最近のC問題は迷路やもぐらたたきなどが出てくるようになった。
そろそろ「ねた」切れか?
0437デフォルトの名無しさん
NGNGchar *a = "ABCDE";
char *b = "FGHIJK";
strcat(a, b);
printf("%s\n", a);
return(0);
}
これで実行時、エラーが出ちゃいます。
コンパイルは通るのですが・・・
0438デフォルトの名無しさん
NGNGネタ決定
char *a = "ABCDE";をchar a[123456] = "ABCDE";に
0439デフォルトの名無しさん
NGNGなんでchar aをそんなにとるんだ。コンパイラによったらそれだけでえらーじゃん。
>>437
ちゃんとコンパイラ通るけど
#include <string.h>
#include <stdio.h>
int main(void){
char *a = "ABCDE";
char *b = "FGHIJK";
char *c='';
strcat(a, b);
printf("%s\n", a);
gets(c);
return(0);
}
で確認してみな!
0440デフォルトの名無しさん
NGNGあんまりなネタだな…。
0441デフォルトの名無しさん
NGNG#define INT_MIN -2147483648
ではなく
#define INT_MIN (-2147483647 - 1)
って書いてあるのはなぜですか?
0442デフォルトの名無しさん
NGNGなんでだろうね。
負は正にくらべて範囲が一つ大きいですよって強調してるのかな?
0443デフォルトの名無しさん
NGNG・でもそれが間違いだと判明した
・修正担当者は引き算ができなくて、泣きながら-1を追加した
というのが真相だろう。
0444デフォルトの名無しさん
NGNG−32767が正解。
0445デフォルトの名無しさん
NGNGINT_MINって規格上の最低じゃなくて、その処理系での最低だと思うけど。
だからこそわざわざマクロにしているんじゃないか。
0446デフォルトの名無しさん
NGNG0447デフォルトの名無しさん
NGNGなに言ってんだこのたこ
0448デフォルトの名無しさん
NGNG> char *c='';
これじゃコンパイル通らないよ。空の文字ってのはエラー。
0449デフォルトの名無しさん
NGNG0450デフォルトの名無しさん
NGNG何に対するレス?
0451デフォルトの名無しさん
NGNG「1.任意の個数のint型数値をコンソールより入力された順に保存する.
2.文字列"Sort"の入力により,入力された数値群を降順に並び替える.
3.最大値と最小値の平均値を計算し,2分探索法で検索する.」
設計指針
・ソート部,探索部は,別のアルゴリズムを採用しても利用できるように設計/実装せよ.
・コンソール入力は,scanf()を使い,文字列,記号,整数値以外は,それぞれ別のエラーコードを返し,
入力を継続するようにせよ.
・メモリ節約のため,数値保存のためのメモリは動的に確保せよ.
0452デフォルトの名無しさん
NGNG0453デフォルトの名無しさん
NGNG小泉批判ですか?
0454デフォルトの名無しさん
NGNG0455デフォルトの名無しさん
NGNG藁!
もういっちょ藁w
0456デフォルトの名無しさん
NGNGここが意味不明。入力データ数に制限がない以上、そっちの方が
メモリ食う可能性があるんじゃないか。
>・コンソール入力は,scanf()を使い,文字列,記号,整数値以外は,それぞれ別のエラーコードを返し,
入力を継続するようにせよ.
ここも意味不明。C言語・scanfでやる以上、「文字列」以外の入力は
どうやったら可能なんだ。
0457451
NGNGニューメリックチェックと型チェックは別モノだから、エラーコードは別にすること。
……ってか、ンなとこで早くも詰まってるの?か(w
本気でセンス無いぞ、それって…
0459デフォルトの名無しさん
NGNGそうなんじゃないの?
0460451
NGNG予想される関数
main
InputformConsole
CheckValid
CheckString
StroreNums
Sort
Sort_quicksort
Search
Search_tree
仕様を増やしてもいいかな?
・画面への表示は1個所で行い、エラーの際もそこで表示すること。
0461デフォルトの名無しさん
NGNG0462デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
NGNG> ・画面への表示は1個所で行い、エラーの際もそこで表示すること。
一箇所って意味ふめいだな
0464456
NGNG何がヒントだこのタコ。
お前の設計指針がタコタコすぎてんなもん作れねーんだよ。ぼけ。
何でもいいからエラーになる入力例挙げてみれ。
C言語において、scanfで「文字列」以外の入力がありえるのか?
0465デフォルトの名無しさん
NGNGま、いいか。
例:
>34
入力を受け付けました。
>34.5
小数は受け付けられません。
>Soort
コマンド Soort は未定義です。
>####
コマンド #### は未定義です。
>Sort
並べ替えを行います。
0466デフォルトの名無しさん
NGNG何でtreeが出てきますか?
0467デフォルトの名無しさん
NGNGそれをscanfでやるの・・・?scanf("%s",s);かい?
0468デフォルトの名無しさん
NGNG小数っていくつ以下の数ですか?
0469デフォルトの名無しさん
NGNG二分木探索?
0471デフォルトの名無しさん
NGNG#define INT_MIN ((int)(-2147483648))
じゃ結果が未定義だろ?
0472デフォルトの名無しさん
NGNGネタだよね?
0473デフォルトの名無しさん
NGNG0474デフォルトの名無しさん
NGNG二分探索と二分木探索は違うぞ。
> 探索部は,別のアルゴリズムを採用しても利用できるように設計/実装せよ
と言っているから他の方法(この場合は二分木探索)を示したんじゃない?
0475デフォルトの名無しさん
NGNG違うと思うなぁ
0476デフォルトの名無しさん
NGNG完璧と見せかけて罠があるコード書いたら面白いかも。
0477デフォルトの名無しさん
NGNGお節介にもつっこんじゃう人いるから巧妙にやらないといけないね。
0478デフォルトの名無しさん
NGNG>1.任意の個数のint型数値をコンソールより入力された順に保存する.
と書いてあるのだから、
コンソールから入力するのは順番じゃないのか?
数値を入力するとは書かれてないぞ。
>2.文字列"Sort"の入力により,入力された数値群を降順に並び替える.
となれば当然ここで言う数値群とは1の順序のことだな。
>3.最大値と最小値の平均値を計算し,2分探索法で検索する.」
でもそうすると、これもなんの最大値か判らないし、何を検索するのかわからないよな。
0479デフォルトの名無しさん
NGNG二分探索木じゃない?
0480デフォルトの名無しさん
NGNG入力してもらう
if "Sort"だったら
ソート関数を呼ぶ
0481デフォルトの名無しさん
NGNG0482デフォルトの名無しさん
NGNG入力してもらう
if "Sort"だったら
ソート関数を呼ぶ
else if 全部数字だったら
if intの範囲内の数字だったら
4バイトのメモリ確保
そこに数字を保存
else
コマンド [入力されたやつ] は未定義です。
ソート関数
適当にソートする。バブルソートでも使えば?(プ
…以上。
>>451の通りに書いたので、無限ループです。
探索ってのはなにが起きた時にすればいいのかわからん。
0483デフォルトの名無しさん
NGNG0484デフォルトの名無しさん
NGNG0485デフォルトの名無しさん
NGNGputsか、最後に改行しないならfputsを使うほうが、無駄が無くていいと思うんだが。
0486デフォルトの名無しさん
NGNGprintfがあるとCらしくてイイ!
0487デフォルトの名無しさん
NGNG0488デフォルトの名無しさん
NGNG----
int foo ();
みたいに、引数を省略した場合って(int)になるんだよね?
この挙動って最新のC99で変わってる?
0489デフォルトの名無しさん
NGNG0490デフォルトの名無しさん
NGNGつい最近その質問と答えを見た気がするんだが。
それともマルチか荒らしか?
0491デフォルトの名無しさん
NGNG引数チェック無し
0492デフォルトの名無しさん
NGNGだから転載って書いてあんじゃん
0493デフォルトの名無しさん
NGNGC++だったらね
0495デフォルトの名無しさん
NGNG平成15年度 自作板 PC環境調査
◆5月分の結果が出ました。現在は6月分に移行しています。
(参考)
平均年齢 25.4歳
ネット(2ch含) 78.7%
ゲーム 59.0%
Windows XP Family 46.9%
Windows 2000 Family 34.4%
Athlon 45.3%
Pentium 4 29.7%
nVIDIA 49.2%
ATI 28.9%
DVD-R/RW/マルチ 20.4%
CD-R/RW 75.9%
光ファイバー 8.3%
ADSL/xDSL 64.5%
CRT 74.6%
LCD 25.4%
0496デフォルトの名無しさん
NGNG本当にアレで正しいのか気になったから
0497デフォルトの名無しさん
NGNG試そうという気はないの?
0498デフォルトの名無しさん
NGNGレスを受け入れられないなら質問するなボケ
0499デフォルトの名無しさん
NGNGここでも同じ奴が答えるという可能性は、微塵も思い浮かばなかなったのか?
0500デフォルトの名無しさん
NGNG0501デフォルトの名無しさん
NGNG住人てあっちとこっちで結構重なってるよねえ。
特に答える側は。
0502デフォルトの名無しさん
NGNG0503デフォルトの名無しさん
NGNG0504デフォルトの名無しさん
NGNG例えばこう言うことかな?
switch (value) {
case 0:
var = 3;
break;
case 1:
var = 2;
break;
default:
var = 0;
break;
}
私ならテーブルにしちゃうけど。
0505デフォルトの名無しさん
NGNG0506デフォルトの名無しさん
NGNG0507デフォルトの名無しさん
NGNGif(value>=3) var = table[2];
else var = table[value];
0508デフォルトの名無しさん
NGNGはら時計
0509デフォルトの名無しさん
NGNG0510デフォルトの名無しさん
NGNGbash なら ./hoge で実行せずに
time ./hoge で実行すれば。
0511デフォルトの名無しさん
NGNGclock使え。
0512デフォルトの名無しさん
NGNG以下のようにやったのですが
は配列へのポインタの初期化がうまくいきません。
char (*ss)[10]={
"sunday",
"monday",
"tuesday",
"wednesday"};
ポインタの配列が「行」の方向に任意の長さをとることができるから
配列へのポインタは「列」の方向に・・・
だと思ったのですが
0513デフォルトの名無しさん
NGNGchar (*ss)[10]ってのは配列じゃなくてポインタだと思うけど。
あなたがやりたいのはchar *ss[10]では?
0514512
NGNGchar *ss[10]は前に書いたように
2次元配列で「行」の方向に任意の長さをとることができる
のは理解できるのです。
しかしchar (*ss)[10]でも2次元配列をレイアウトすることが
出来るはずと考えてやったのです。
つまり
char (*ss)[10]はchar ss[][10]から書き換えられるのではないのか?
ということです。
0515デフォルトの名無しさん
NGNG{
"sunday",
"monday",
"tuesday",
"wednesday"};
はアドレスじゃないので
ss には代入できまへんえ。
0516デフォルトの名無しさん
NGNGのときに
str = (char *)malloc(100);
ってやる意味が分かりません。
str = malloc(100)
これじゃだめですか?
で、freeのほうも
free((char *)str)
にしなきゃならないとか
free(str)
でいいとか・・・
どなたかこの意味を教えていただけないでしょうか?
0517デフォルトの名無しさん
NGNGキャストは必要ないよ。
0518デフォルトの名無しさん
NGNGvoid *q;
double *r;
q = p;
r = q;
といううっかりミスを防止するため。
0519デフォルトの名無しさん
NGNGC だと必要ないが、C++ だと必要、というのが定番の答え。
0520デフォルトの名無しさん
NGNGそれがキャストの有無とどう関係ある?
0521512
NGNGありがとうございます。
どうも勘違いしていたみたいです。
0522516
NGNGありがとうございます、なんとなく分かりました。
ついでにもうひとつ聞いてもいいでしょうか?
struct port{
(構造体)
}
struct p *f;
f = (struct p *)malloc(sizeof(struct p));
としたとき
free((char *)f);
と型キャストしなければならないと書いてあったのですが、こっちはどういうことなんでしょうか?
連続で質問してすみませんが、お願いします。
0524デフォルトの名無しさん
NGNG0525デフォルトの名無しさん
NGNG>でも古かったら引数チェックなんて行われないはずだけどなぁ・・・
さすがにそれは古すぎ...
昔のBSD系が free(char*) で、
SYSTEM V系が free(void*) だったのだ。
んでANSIで free(void*) に統一される。
0526デフォルトの名無しさん
NGNGchar *str_copy(char *d, const char *s){
char *t = d; //A
while(*d++ = *s++)
;
return t;
}
int main(void){
char s1[128] = "ABCD";
char s2[128] = "EFGH";
printf("文字列s1:");
scanf("%s", s1);
str_copy(s2, s1);
puts("s1をs2のコピーしました。");
printf("s1 = \"%s\"\n", s1);
printf("s2 = \"%s\"\n", s2);
return 0;
}
上のプログラムで、なぜ関数*str_copyに値を返す必要があるのかが分かりません。
void str_copy(・・・){、でやってみても実行結果は変わりません。
やはり何か理由があるのでしょうか?
ちなみに望洋本の例題です。
0527526
NGNG0528デフォルトの名無しさん
NGNG標準ライブラリのstrcpyと同じものにしたいからだろ。
0530デフォルトの名無しさん
NGNGそれは標準ライブラリのstrcpyがそうしているから、それに習ったんだと思われ。
たとえばコピーした後の文字列の長さが知りたい時に、
str_copy(dst,src);
length = strlen(dst);
とやってもいいけど、str_copy() は dstをかえしているから、上は
length = strlen( str_copy(dst,src) );
という風にもかける。
0531デフォルトの名無しさん
NGNGstrcat(strcat(strcat(s1,s2),s3),s4);
これでs1が"ABCDEFGHIJKL"になるってのがどこかにあったな。
こんな書き方するくらいならsprintf使った方がいいと思うけど・・・
sprintf(s1+3,"%s%s%s",s2,s3,s4);
0532デフォルトの名無しさん
NGNGchar *t = d; でtにdの先頭アドレスがはいるにょ。
while(*d++ = *s++) でdにsの文字をコピーするにょ。このときdのポインタは
'\0'まですすんでるにょ。
return t; ここでtをdにしてしまうと。'\0'をかえすだけだにょ。
だからtの先頭アドレスはdの先頭アドレスをかえすにょ。
char *str_copy はtのアドレスをポインタとしてさしてるからdの先頭文字をさしてるにょ。
だから*str_copy だにょ
0533デフォルトの名無しさん
NGNG0534デフォルトの名無しさん
NGNGいいたいことは分かるけど、>>526へのレスとしては見当違いじゃない?
0535デフォルトの名無しさん
NGNGすまんにょ。
printfでchar *str_copyを直接読み出しているわけでなかったにょ。
だからreturnは別にいらなかったにょ。
0536デフォルトの名無しさん
NGNGCでやると違和感有るな。
char a[1234];
char *s = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
char *p = s;
while(strcpy(a,p++)[0]){printf("%s\n",a);}
0537デフォルトの名無しさん
NGNG0538デフォルトの名無しさん
NGNG→
→→
→→→
→→→→
と一個ずつ増えるようにするにはどうすんの?
0539デフォルトの名無しさん
NGNG何故スレ違いだと思わない?
0540デフォルトの名無しさん
NGNGこれやるとコンパイル通らないんだけどなんで?
0541デフォルトの名無しさん
NGNGエラーやワーニングくらいよめ。
0542デフォルトの名無しさん
NGNGhttp://homepage3.nifty.com/coco-nut/
0543デフォルトの名無しさん
NGNG0544デフォルトの名無しさん
NGNGFatal: Error detected (LME1514)
Fatal: Error detected (LME1514)
Fatal: Error detected (LME1514)
Fatal: Error detected (LME1514)
Fatal: Error detected (LME1514)
Fatal: Error detected (LME1514)
Fatal: Error detected (LME1514)
エラー読んでもわからないよ。
0545デフォルトの名無しさん
NGNG不親切なコンパイラだな。何使ってるの?
ちなみに >>540 は「スタック領域のサイズ」について
調べてみなされ。
0546デフォルトの名無しさん
NGNG400MBものスタックを使える環境を用意しる。
0548デフォルトの名無しさん
NGNGそもそも、そんな巨大な変数を関数内で宣言しないでくれ・・・
externで確保してしまうとか・・・
mallocで一時的に確保してポインタでどうにかするとか・・・
ぐはぁ・・・
0549デフォルトの名無しさん
NGNG>extern で確保
400MB メモリが空いてないと起動できないぞ。
>malloc で確保
全部確保しないとどうしようもないんならそうせざるを得ないけど、
一度に全部確保しないでどうにかする道を探すのが正しい道だ。
map と書いてあるので RPG のマップのようなものだと考えると、
いくつかのブロックに分割して、
現在地近くのデータのみをメモリ上に置くようにする。
0550デフォルトの名無しさん
NGNGsrand( time(NULL) ) ;
for( i = 1 ; i <= 100 ; i++ ) {
x = 1 + rand() % 50 ;
if( x == 25 )
raise( SIGINT ) ;
printf("%4d" , i ) ;
if( i % 10 == 0 )
printf("\n") ;
}
signal()が2回目のシグナルを受信しないんですが
教えてくらはい
0551デフォルトの名無しさん
NGNGスレ違い。
ついでに情報不足。
0552デフォルトの名無しさん
NGNG0553デフォルトの名無しさん
NGNG0554デフォルトの名無しさん
NGNG一回シグナルを受信して定義した関数にジャンプすると
2回目からから引数のハンドラへのポインタが自動的に
signal( SIGINT , SIG_DFL ) に再設定されてしまうつーことなんすかね?
0555デフォルトの名無しさん
NGNG0556デフォルトの名無しさん
NGNGどういう方法が一番早く計算できますか?
0557デフォルトの名無しさん
NGNGスレ違い
読んでないから内容は知らないが、こういうスレがある。
http://pc2.2ch.net/test/read.cgi/tech/1018657457/
0559デフォルトの名無しさん
NGNG0560デフォルトの名無しさん
NGNGおもいっきり演算子だろ。
0561デフォルトの名無しさん
NGNG() つけるから抵抗があるんじゃ。
() なんか無くてもほーら。
int a;
printf("%d\n", sizeof a);
ね?
型には括弧を付けないといけないけどね。
0562デフォルトの名無しさん
NGNG0563デフォルトの名無しさん
NGNGsizeof の返す値は定数だけど、
プリプロセッサでは解析されないから
#if HOGE == sizeof (int)
というのは使えない。
case ラベルとか、静的変数の初期値とか、
そういうのには問題なく使える。
0564デフォルトの名無しさん
NGNG0565デフォルトの名無しさん
NGNGサンクス
配列の大きさ指定に使えるくらいだから定数なんじゃないかなぁと思っていたけど自信なかったです。
基本型の大きさを表す(標準の)マクロというのは存在しないんですよね。最大値や最小値を表すマクロならあるのに...条件付きコンパイルに使うようなものではないでしょうけど。
0566デフォルトの名無しさん
NGNGlimitから換算して自分でマクロ作れ
0567デフォルトの名無しさん
NGNGアセンブラコード見たけどループの外においた場合と変わらなかったよ。
0568デフォルトの名無しさん
NGNGそれだけじゃ何が言いたいのかわからん。
変数のスコープをなるべく小さく、という方針には適うが
初期化に時間がかかるような場合はループの外でやれないか考えることはある。
昔、漏れは当時の上司にループ内変数をとがめられたことがあるが、
よくよく話を聞いていると何のことはない、そいつが知らなかっただけのことだった。
0569デフォルトの名無しさん
NGNGそれがいやなら勉強しろ。
0570デフォルトの名無しさん
NGNG以上。
0571デフォルトの名無しさん
NGNG0572デフォルトの名無しさん
NGNGint main(void){
int i;
float a=2.0,b=0.1;
while(a<=3.0){
printf("a = %f\n", a);
a+=b;
}
}
このようなプログラムを組んでも、 a は 3.0 に到達せず、 2.9999……となってしまいます。
その理由は調べてみて理解できたのですが、確実に 3.0 まで処理させたい場合、
どのようなコードを書くのが一般的なんでしょうか。
0573デフォルトの名無しさん
NGNGfor(i=0; i<10; i++)
printf("%f", 2.0+i/10.0);
0574デフォルトの名無しさん
NGNGわざわざありがとうございます。しかし言葉が足りなかったようで、
変数a と b 及び 3.0 は定数ではなく、scanf を使って読み込む形の場合を知りたかったのです。
つまり、下記コードにて、a 〜 c までを確実に処理したい、ということです。
勿論 b の値によっては a == c となることは有り得ないわけなんですが、
一例として a = 2.0, b = 0.1, c = 3.0 のとき、を出させていただきました。
int main(void){
float a,b,c;
printf("a -> ");
scanf("%f", &a);
printf("b -> ");
scanf("%f", &b);
printf("c -> ");
scanf("%f", &c);
while(a<=c){
printf("a = %f\n", a);
a+=b;
}
}
よろしく御願いします。
0575デフォルトの名無しさん
NGNGfor (i = 0; i <= n; ++i) {
printf("a = %f\n", a + b * i);
}
0576デフォルトの名無しさん
NGNG0577デフォルトの名無しさん
NGNG0578デフォルトの名無しさん
NGNG0579デフォルトの名無しさん
NGNG0580572
NGNGとりあえず今回は、四捨五入で数値(変数a)を補正していくという方法で解決させました。
色々やったせいで、40行程のソースが80行程まで膨れ上がってしまいましたが(汗)
0581451
NGNG要求仕様が決まってない分は,何も突っ込まずに作ったほうが楽だってことを,
身をもって体験したいとは見上げた根性のコザルだな(w
0582デフォルトの名無しさん
NGNGrand() / (RAND_MAX / N + 1)
これ↑ RAND_MAX が INT_MAX なら N=1 の時にオーバーフローするから、
こう↓書くべきじゃないの?
rand() / (RAND_MAX / N + 1U)
0583デフォルトの名無しさん
NGNGNが1ならな。でも1ってことはないと思うよ。
0584デフォルトの名無しさん
NGNG別に定数でないといけないということもないと思うけど。
0585デフォルトの名無しさん
NGNG> 0からN-1までの数を返そうとする
N==1,0から0までの...
ありえないね。
0586デフォルトの名無しさん
NGNGNが1にならないように工夫しようとは思わないの?
0587デフォルトの名無しさん
NGNG0588デフォルトの名無しさん
NGNG0589デフォルトの名無しさん
NGNG0590デフォルトの名無しさん
NGNG0 から 0 までの、ということは、
必ず 0 を返すというちゃんとした結果が定義できるので、
ありえないとか、間違いってことは無い。
定義できないのは、N が 0 の場合だ。
0591デフォルトの名無しさん
NGNG0の時は意味がないから別の処理になるが、
1の時も2以上と全く同じ処理をする場合、
わざわざ分岐させる必要ないだろ?
0593デフォルトの名無しさん
NGNGでなければあんなまずいコードをC FAQに載せたりしないでしょ。
0594デフォルトの名無しさん
NGNGU付けるだけで何も問題ないのに、何故そんなに必死なんですか?
0595デフォルトの名無しさん
NGNG0596デフォルトの名無しさん
NGNGUつければNが0の時も問題が起きないんでしょうか。
0597デフォルトの名無しさん
NGNG今はN=1の話をしてるのに、なんで必死にN=0の話にすり替えようとするの?
0598デフォルトの名無しさん
NGNGint Get1(){return 1;}
int Get2(){return 2;}
int Get3(){return 3;}
int GetList[] = { Get1();,Get2();,Get3();};
int list[3];
for(int i=0;i<3;i++)
list[i] = GetList[i];
本当はさらに
#define INTLIST \
Get1();,\
Get2();,\
Get3();,\
int GetList[] ={INTLIST};
みたいなことをしたいのですが。
どうやらコールバック関数なるものを使うとうまくいきそうな
きもするのですが、よくわからないのです。
よろしくお願いします。
0599デフォルトの名無しさん
NGNG「何も問題がない」というからでしょ。そもそもNが定数とは限らないなんて言い出すことが(以下略
0600デフォルトの名無しさん
NGNGint (*Getlist[])()={Get1,Get2,Get3};
こうかな。
0601600
NGNG0602デフォルトの名無しさん
NGNGうまくいきそうなので実装してみます
0603600
NGNGint (*Getlist[])(void)={Get1,Get2,Get3};にしておいて。
でないと多分int Get4(int,char *)でも入れられてしまうと思うから
0604デフォルトの名無しさん
NGNG0605デフォルトの名無しさん
NGNGじゃ、x/y とか x%y の計算をする場合、
y=1 の時は計算しなくても答がわかるからって別の処理にする?
0606デフォルトの名無しさん
NGNGところで、引数を使いたいばあい、
int GetInt(int i){return i*i;}
int (*Getlist[])(void)={ GetInt,GetInt,GetInt };
list[i] = Getlist[i](2);
みたいな感じにするんですか?
list[i] = Getlist[i](i);
こうやって2乗にした数字の配列を得たりするってことですか?
それとも
int (*Getlist[])(2)={ GetInt,GetInt,GetInt };
こうやるんですか?でもそうすると、宣言以降は
引数を変更できないですよね。
0607デフォルトの名無しさん
NGNGGetlist[i]が関数名だと思って使えばいい。
引数を与えたいなら通常の関数と同じようにGetlist[i](3)とかGetlist[1](n)とする。
0608607
NGNG> int (*Getlist[])(void)={ GetInt,GetInt,GetInt };
voidじゃ引数がintのGetIntは入れられないって。その場合はint (*Getlist[])(int)={ GetInt,GetInt,GetInt };とする
0609デフォルトの名無しさん
NGNGGetInt_t Getlist[]={GetInt,GetInt,GetInt};
この方が読みやすそう
0610デフォルトの名無しさん
NGNG0611デフォルトの名無しさん
NGNG禿同
0612デフォルトの名無しさん
NGNG(*Getlist[])(int) のように、2番目の括弧の中には引数の型をいれる
のですね。typedefの使い方も教えて頂きありがとうございます。
0613デフォルトの名無しさん
NGNGよくプログラミングを勉強するときは、ソースを沢山読んで
少し書いて、さらにソースを沢山読んで・・・もっとソースを・・・・
って表現がありますが、このレベルだとどのようなソースを読めばいいのでしょうか?
お勧めありましたらお願いします
0614デフォルトの名無しさん
NGNGだめぽ?専門1年!先生が載ってないがrand教えたから、少し安心
0615デフォルトの名無しさん
NGNGhttp://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.8.2.html
0616デフォルトの名無しさん
NGNG→
→→
→→→
と一個ずつ→が増えるプログラムわかんね
0617デフォルトの名無しさん
NGNGなぜよりによってそのページをw
藤原さんのページだったら他にいろいろあるだろう。
入門書を終えたのだったら、Kernighan&Pikeの「プログラミング作法」をおすすめする。
プログラマを目指してるのだったら絶対に損はしないと思う。
むしろ必読書ともいえる。
http://www.amazon.co.jp/exec/obidos/ASIN/4756136494/ref=sr_aps_b_/250-7855980-3368256
これね。
んで、ソースのほうはPC-UNIX系をインストールして読んでみるのがいいと思うよ。
読むだけじゃなくて改造してみるとかね。はじめは比較的簡単なlsあたりからはじめて、
最後にはカーネルやドライバをw
0618デフォルトの名無しさん
NGNG結構有名な本だね。読んだことないけど。図書館にないから(ワラ
0619デフォルトの名無しさん
NGNGスレ違い。
かつ情報不足。
なにをやりたいのかわかんね。
0620デフォルトの名無しさん
NGNG615ってさ、610-611を皮肉ってるんだろw
0621デフォルトの名無しさん
NGNGちげーよ ネタとして持って来るには一番だったからだ。
世の中にはこんなことしちゃう人もいるってことを(ry
0622デフォルトの名無しさん
NGNGというのは本質的な解決方法かどうか、特に引用元のような教科書的
記述で採用されるかどうか...。暗黙の型変換を利用するくらいならば
同じく引用元で最初に書かれている浮動小数点利用の方法がわかりやすい。
これならばN=1 でも問題はない。
0623デフォルトの名無しさん
NGNG0624デフォルトの名無しさん
NGNGGetInt_t* Getlist[]={GetInt,GetInt,GetInt};
これってイクナイ?
0625デフォルトの名無しさん
NGNG***********************func();
とか書いても大丈夫
0626デフォルトの名無しさん
NGNG(*********************printf)("ok");
0627デフォルトの名無しさん
NGNG0628デフォルトの名無しさん
NGNGそれはちっとも大丈夫じゃないぞ。
***********************(func());
と同値だぞ。
0629デフォルトの名無しさん
NGNGif(a==b){
・
・
・
}
てしたいんだけど、小数第二位までを比べる方法ってありますか?例えば
a=1.23456
b=1.23789
でもifの中が実行されるように。
0630デフォルトの名無しさん
NGNG0631デフォルトの名無しさん
NGNGa=1.23456
b=1.24000
0632デフォルトの名無しさん
NGNG100倍して小数部を切り捨てるというのは?
0633デフォルトの名無しさん
NGNGで、分からなくなったのですが、return 0;やreturn n; 、
return 10;などの解釈の仕方が分かりません。
どなたか説明してもらえないでしょうか?
0634デフォルトの名無しさん
NGNG0635デフォルトの名無しさん
NGNG文字列型とクラスとガーベッジコレクションがないの?
0636デフォルトの名無しさん
NGNGクラス 言語が古いから
ガーベッジコレクション 必要ない
0637デフォルトの名無しさん
NGNGがんがれ厨房よ
0638デフォルトの名無しさん
NGNGめっちゃ宣伝
0639デフォルトの名無しさん
NGNG古いからねえw C99はどうする?
「ある言語」とCの差異をひとからげに欠点にしたがる
ゆんゆんピープルがこの時期は多いよな。
0640デフォルトの名無しさん
NGNG'return' は予約語です。その働きは決まっています。
「return;」あるいは「return なんとか;」と使って
教科書どおりの働きなんですが...。
慣れるまでしばし鵜呑みにするのもひとつの手ではあります。
0641633
NGNGOSにプログラムを無事に終了することを伝えるってことですか?
普通のプログラムでは何も知らずにretorn 0;を使っていたのですが、
突然「return なんとか;」がでてきて焦ってしまいました
0642デフォルトの名無しさん
NGNGreturnは値を返すって意味でいいんじゃない?
メイン関数終了時のreturn 0またはreturnはプログラムが
正常に終了したぜって意味だし。エラーは1だっけ。
うろ覚えですまん
0643デフォルトの名無しさん
NGNGreturnの後ろなんて呼び出したところになんか返すんだから
自分で書いてる関数なんかは自分で決めるもんだろ?
return 0;ばかりで事足りてたならreturn;で十分だろ?
実際のOSだとreturnでエラーとか直接返すことなんてありえないぞ
本なんかの説明での論理的なOSだと値を返せたりするみたいだけど
return 0;しか知らないということはexternでグローバルな変数ばかり確保してるって事か・・・
0644デフォルトの名無しさん
NGNG> 文字列型 あるじゃん
ありません。
> ガーベッジコレクション 必要ない
C++でテンプレート駆使して同じようなことをやっているところを見ると
必要あるように思われますが?
0645デフォルトの名無しさん
NGNG「必要」の意味わかってる?
0646デフォルトの名無しさん
NGNGそのレベルならexternも知らないだろうな。
0648デフォルトの名無しさん
NGNGガベージコレクションはあると嬉しいよね。
現段階では言語仕様に含まれず、ライブラリでやるしかないけど。
なので完璧なガベージコレクションは望めないけどね。
でも実用上問題のないレベルではあるという話だ。
おれの経験でも問題なかったし。ま、使ったことがあるのはBohem GCだけだけどね。
言語仕様に盛り込まれるかどうかというと、永久にそれはないようなきもする。
文字列型もあれば嬉しいような気がするけど、そんな面倒でもないしな。
面倒だったらC++使っとけって感じだし、Cに欲しいとはあんまり思わない。
むしろCだったらソースの字面からアセンブリコードが透けて見えないといやなんで、
やっぱいらないかな、とも思う。
0649デフォルトの名無しさん
NGNGバッチやらperlやらから、実行した場合、mainの戻り値を受けることができるわけだ。
その戻り値で処理を分けたりしてな。、
0650
NGNGhttp://natto.2ch.net/mass/kako/988/988402795.html
949 名前: 文責:名無しさん 投稿日: 2001/05/28(月) 18:46
>>916
直接の実行犯はわからなかった。ただし、その盗聴機関がマスメディア産業の
各方面につながっていることは確認済み。団体名なんか書く必要ないでしょ?
フジ・テレビとか読売新聞社とか電通とか...みんなが知ってるあの会社って
感じ。講談社の週刊誌(現代とかフライデイとか)が政治家の過去を暴露する記
事や写真をよく掲載するでしょ。あの手の記事は、盗聴/盗撮で得た情報で商売
をしている人達がいるという証拠。あういう人達に、オレの個人情報をつかまれ
ているんで非常に心配ですが、現状では、対抗策がない。
0651デフォルトの名無しさん
NGNG同意
0652デフォルトの名無しさん
NGNGなるほど・・・
だが重大なことに気が付いた・・・
C言語がmainを基準に動いていたということをすっかり忘れていまそた・・・
0653デフォルトの名無しさん
NGNG「C言語がmainを基準に動いていた」とは知らなかった。
こういう意味不明で自分勝手な言葉遣いする新人がよくいるが
本当につかれる…。
0654デフォルトの名無しさん
NGNG0655654
NGNG0656デフォルトの名無しさん
NGNG0657lz5
NGNG136824 . 43099 31%
0658デフォルトの名無しさん
NGNGint main(void)
{
int num1=0,num2=0,a;
printf("整数を入力してください\n");
printf("和または積を表示します\n");
printf("整数1");scanf("%d",&num1);
printf("整数2");scanf("%d",num2);
printf("1:和を表示 2:積を表示");scanf("%d",&a);
if(a==1){
printf("%dと%dの和は%dです。",num1,num2,num1+num2);
}
else if(a==2){
printf("%dと%dの積は%dです。",num1,num2,num1*num2);
}
else{printf("はぁ!?");}
getchar();
}
Cを始めて2日目です。参考にしたいのでおかしいとこがあれば教えてください。
0659デフォルトの名無しさん
NGNGもっと改行しろ
0660デフォルトの名無しさん
NGNG0661デフォルトの名無しさん
NGNG0662デフォルトの名無しさん
NGNG0663デフォルトの名無しさん
NGNG0664デフォルトの名無しさん
NGNGの出方が確率的だな
0665デフォルトの名無しさん
NGNG0666デフォルトの名無しさん
NGNG0667デフォルトの名無しさん
NGNG0668デフォルトの名無しさん
NGNGグローバル変数は自動で0もしくはNULLに初期化されますが、ローカル変数は
初期化されません。main関数も例外ではありませんので初期化が必要です。
0669デフォルトの名無しさん
NGNG初期化しなくてもいい気がするが、するならするでaもしてやれ。一貫性を持たせよう
>printf("整数1");scanf("%d",&num1);
1行に2文かくのはあまり好きじゃないな。見にくいソースのもとだぞ。
>if文
swithにしたほうがいいんじゃ?
>getchar();
if〜elseの外に出さないと。…って、elseの{}はその行のうちに閉じているのか。
そしたら最後の}が余計。コンパイルエラー。
現場ではよく「if文は中身が1行でも{}を記述すること」なんてコーディング規約があるぞ。
0670デフォルトの名無しさん
NGNG後にscanfで値を入れるんだから必要ない。
0671デフォルトの名無しさん
NGNG\nもうちょっと入れてみ。
あと,mainの戻り値intなら,int返した方が落ち着かないかい?
0672デフォルトの名無しさん
NGNGそういう意味じゃないだろ。
>>669
最後の}はmainの閉じカッコだろ。
0673デフォルトの名無しさん
NGNG> 1行に2文かくのはあまり好きじゃないな。
激しく同意 あとなるべくなら{の後も改行してほしい。
0674デフォルトの名無しさん
NGNG確かANSICで規格化されていたような気がしたが気のせいか???
0675デフォルトの名無しさん
NGNG変数を参照する前にその変数に何か値を代入するなら、
初期化しなくても大丈夫。
つまり、こんなプログラムは困っちゃうけど
int a;
a++;
printf("%d",a);
こんなのならOK。
int a;
a=1;
printf("%d",a);
>>672
スマソ、見落としてた…。
0676デフォルトの名無しさん
NGNG0677デフォルトの名無しさん
NGNGなにを言っている?
参照する前に代入などで値を入れるなら初期化は必要ないだろ。
もっとも、常に初期化するくせをつけるのは悪くないけど。
0678デフォルトの名無しさん
NGNGアメリカ規格協会
0679669
NGNG{}は書いてるじゃんか。
俺が言いたいのは「ちゃんと改行しないとわかりにくい」ってことだ。
たびたびスマソ
0680デフォルトの名無しさん
NGNGなにが?
0681デフォルトの名無しさん
NGNGそうじゃなくて、ANSI Cで何が規格化されてるって?
初期化してない自動変数をscanfで使ったらあかんよってか?
0682デフォルトの名無しさん
NGNG0683デフォルトの名無しさん
NGNG0684デフォルトの名無しさん
NGNGprintf("整数2");scanf("%d",num2); これだ!
num2を参照している。 ・・・・でもつっこむべきところが違うと思う。
0685デフォルトの名無しさん
NGNGそこは見逃してやれよ。
0686デフォルトの名無しさん
NGNG最後の一行は、不定のまま使うなって話と微妙にベクトル違うね
アルゴリズム的が0は出てこないコードに=0と書きまくるガイキチには虫唾が走る
0687デフォルトの名無しさん
NGNG0688デフォルトの名無しさん
NGNGよく見るとprintfの後ろにscanf("%d",&num1);がついてるよマジ
俺の会社でこんなん書いたら先輩と上司が飛んできて文句をひたすら
いい続けるよ本当です。
0689デフォルトの名無しさん
NGNG自分の指摘がおかしいのを誤魔化すために、話題を逸らすのはやめてください。
自分の指摘がおかしいのを誤魔化すために、話題を逸らすのはやめてください。
自分の指摘がおかしいのを誤魔化すために、話題を逸らすのはやめてください。
自分の指摘がおかしいのを誤魔化すために、話題を逸らすのはやめてください。
0690636
NGNG誤: アルゴリズム的が
正: アルゴリズム的に
0691デフォルトの名無しさん
NGNGが入っていないよ。
javaならif elseのすべてに戻り値がないとコンパイルエラーですな
0692デフォルトの名無しさん
NGNG0693デフォルトの名無しさん
NGNGなんでそこでJavaがでてくるの?
なんでそこでJavaがでてくるの?
0694デフォルトの名無しさん
NGNG0695デフォルトの名無しさん
NGNGJava関係ないだろ。それはおいといても
「if elseのすべてに戻り値がない」なんていう状況か?
0696デフォルトの名無しさん
NGNG0697デフォルトの名無しさん
NGNGそろって気を荒立ててるのだよ。
0698デフォルトの名無しさん
NGNG0699デフォルトの名無しさん
NGNG>オブジェクト指向は全てそうなっている
0700デフォルトの名無しさん
NGNG>C言語がmainを基準に動いていたということをすっかり忘れていまそた・・・
0701デフォルトの名無しさん
NGNG0702デフォルトの名無しさん
NGNG0703デフォルトの名無しさん
NGNG0704デフォルトの名無しさん
NGNGおれとしてはこれも捨てがたい
>636 名前:デフォルトの名無しさん 本日のレス 投稿日:03/06/15 18:49
>文字列型 あるじゃん
>クラス 言語が古いから
>ガーベッジコレクション 必要ない
0705デフォルトの名無しさん
NGNG何もしないだけ?
0706デフォルトの名無しさん
NGNG0707デフォルトの名無しさん
NGNGdstを先頭から1024バイト分0で初期化する。
0708デフォルトの名無しさん
NGNG情報処理受けるので、今ボーランドのC++ですが、あまり変わらないでしょうか?
0709デフォルトの名無しさん
NGNG激しく誤解してますな
0710デフォルトの名無しさん
NGNG違う言語を比べるのは、いかがなものかと。
0711デフォルトの名無しさん
NGNGC++コンパイラなら、拡張子を.cにするか、オプションの指定でCコンパイラとして使えると思う。
0712デフォルトの名無しさん
NGNGどこが?
0713デフォルトの名無しさん
NGNGC言語を拡張したのがC++です。
拡張長された機能により、C言語では実現の難しかったコーディングを可能にしています。
C++はC言語の仕様を内包しているので、C言語のプログラムをC+のコンパイラでコンパイルすることができます。
逆にC++のコンパイラでコンパイルできたからといってC言語として正しいとはいえません。
あくまでもC言語の範囲に仕様を限定してコンパイルしたい場合には>>711のようにしてください。
bccって拡張子を.cにするだけでC言語でコンパイルするっけ?
vcだとだめだよねたしか。
0714デフォルトの名無しさん
NGNGvcってのがVisual C++のことならそれでOKだけど・・・
ANSI Cのみなら/Zaをつけなければいけなかったかもしれないけど。
0715デフォルトの名無しさん
NGNG0716706
NGNG0717706
NGNGcatの方は'\0'を付加するということばかり考えていて"連結する"関数だということを忘れていた。。。
0718デフォルトの名無しさん
NGNGどうなってるの?
if(sz > 0) then foo(p, sz);
みたいにifではじく必要があるのかないのかが知りたいです。
0719デフォルトの名無しさん
NGNGthenって(w
基本的に標準ライブラリはガーベッジイン・ガーベッジアウトだと
思って使ったほうがいいよ。
0720デフォルトの名無しさん
NGNG0721デフォルトの名無しさん
NGNGfreeのようにNULLはOKと明示しているものだけ安全って事ですかね。
0722デフォルトの名無しさん
NGNGそだね
0723デフォルトの名無しさん
NGNG0724723
NGNG0725デフォルトの名無しさん
NGNGint func(unsigned char c){ return 1;}
main(){
unsigned char c = 1;
func(c);
}
これで警告が出るのですが、どのように直せば、警告が消えるのでしょうか?
0726デフォルトの名無しさん
NGNG0727デフォルトの名無しさん
NGNGreturn 0;
0728デフォルトの名無しさん
NGNG0729デフォルトの名無しさん
NGNG0730デフォルトの名無しさん
NGNG0731725
NGNGだめでした。
>>728
消えました。unsigned char は unsigned int に変換されてわたされるということなのでしょうか。
>>729
% gcc -Wconversion hoge.c
hoge.c: In function `main':
hoge.c:5: warinig: passing arg 1 of `func' with different width due to prototype
こんなんです。
>>730
すみません
int main(){
unsigned char c = 1;
func(c);
return 0;
}
こうでした。
0732デフォルトの名無しさん
NGNG#include <stdio.h>
main()
{
printf("This is a test!");
}
0733デフォルトの名無しさん
NGNGVisual Studioとかだと、main関数の返り値が定義されていないと警告出て自動的に
void main() としてコンパイルされる。
それがいやなら、
void main(){
}
とコーディングするか、
int main(){
return 0;
}
とすればいい。
0734デフォルトの名無しさん
NGNGgcc なら main{}で警告でないよ。
0735732
NGNG0736デフォルトの名無しさん
NGNGプロトタイプの存在により引き起こされる引数の型変換が、 プロトタイプが存在しなかった場合
に同じ引数に対して行われるであろう変換と異なる場合に、 警告を出力します。 これには、
固定小数点から浮動小数点への変換やその逆の変換が含まれます。 また、 固定小数点引
数の大きさ(width)や符号の有無を変更する変換も、 それがデフォルトの拡張(promotion)と
同等である場合を除外して、 対象となります。 また、 負の整数定数式が暗黙のうちに無符号
の型に変換される場合にも、 警告が出力されます。 例えば、 xが無符号であると、 代入x =
-1に対して警告が出力されます。 しかしその一方で、 (unsigned) -1のような明示的なキャ
ストに対しては、 警告は出力されません。
0737デフォルトの名無しさん
NGNG0738デフォルトの名無しさん
NGNG0739デフォルトの名無しさん
NGNG0740725
NGNGありがとうございます。
でも(´・ω・`)ワカラン・・・
0741デフォルトの名無しさん
NGNGどうすればよいのでしょうか?
char **p;
p=malloc(10*sizeof(char(*)));
for(i=0;i<10;i++)p[i]=malloc(100*sizeof(char));
/*
何か代入する
*/
memset(p,0,sizeof(p));
これでは無理でした・・・
0742デフォルトの名無しさん
NGNGプロトタイプがなければ、charを受け取る関数というのは書けない。
0743デフォルトの名無しさん
NGNG-Wallにすると旧式な宣言は警告されるな
C++では合法なはずだが、それでも出る
0744デフォルトの名無しさん
NGNGp[i]の領域とってないじゃん。
ところで、何で二重ポインタが突然二次元配列って話に飛ぶんだ?
先輩か教官にそんなこと言うアフォがいるんなら、そいつはもう相手にするな。
添え字って*(mona + giko)をmona[giko]と書いてもよい、だけのことだよ。
プログラムの設計図をちゃんと作ってみろって!
そのコードがいかに無茶苦茶か浮き彫りになるから。
0745744
NGNG欝だ氏のう
0746デフォルトの名無しさん
NGNG0に初期化したいのならmemsetなんぞ使わずにmallocをcallocにすればいい。
ところで、sizeof(char)ってのは無意味だよ。
0747744
NGNGmemsetにpと渡してもポインタ配列の部分をゼロクリするだけで
その先にある文字列格納メモリは個別にゼロクリが必要。
mallocと同数回のmemsetか、mallocの代わりにcallocな。
0748デフォルトの名無しさん
NGNGchar (*p)[100];
p=malloc(10*100);
だと思うけど
0749デフォルトの名無しさん
NGNGワラタ。おれ、744を見て「え? そうだったっけ?」って小一時間(うそ、小一秒間)、
コードを読み返しちゃったよw
あとなんだ、
memset(p,0,sizeof(p));
は、mallocしたサイズはとれないという突っ込みもあるが、
pの指してる先をfreeしてないのであればメモリリークするということも突っ込んでおこう。
# このsizeofとかの理解だとやってそうな気がする。
0750デフォルトの名無しさん
NGNG現在、文字列の一部を置き換える関数の課題をしているのですが、
char型の関数を用意したのはいいものの、返り値がよく分かりません。
char strを返した場合、mainのところで出力する場合は
ポインタとかを使えばいいのでしょうか。(´・ω・`)
0751デフォルトの名無しさん
NGNG他人はもっと分からないぞ。
課題にはなにを返せと書いてある?
0752デフォルトの名無しさん
NGNGなっていて、たとえばp=replace("tracter","act","imot")だったら、
pは"trimotor"と返すような関数なんです。
それで、関数自体はなんとか出来たのですが、返り値でつまづきました。
replace関数の所で配列strに文字列を格納したのでreturn (str);としたのですが、
出力がうまくいかないのです。(´・ω・`)
replace関数の中で出力するのはうまく出来たのですが……。
0753デフォルトの名無しさん
NGNG>/* 何か代入する */
>memset(p,0,sizeof(p));
memset()で初期化出来るか出来ないか以前に
初期化を何の為に、何時するべきなのかを考えましょう
0754デフォルトの名無しさん
NGNGつまりこういうことか?
char *replace(char *s1, char *s2, char *s3) {
char str[STRSIZE];
/* いろいろやる */
return str;
}
もしこういうことをやってたとしたら、それはよろしくないぞ。初心者にありがちなミスだ。
配列strの有効な範囲は関数replaceの中だけだ。その関数を出たあとでは、
strは解放されちゃって使えなくなる。
一般に関数は自動変数(staticでないローカル変数)のアドレスを返しちゃいかん。
んで、何を返せばいいかだが…、その関数が何を返せばいいのかよくわからんので
答えようがない。
0755デフォルトの名無しさん
NGNGなるほど。その引数はまずいけどそれは置いておいて・・・
replace関数内でchar *str=s1;とやってstrをいじらずにreturn str;とすればOKなはずだよ。
0756755
NGNGそれならstatic char str[SIZE];とすればいいんだけど・・・・
0757デフォルトの名無しさん
NGNG1 s1を直接書き換える
2 staticで用意してやる
3 char *replace ( char *dst, char *s1, char *s2, char *s3 ) ;
の様に、もう1つ増やしてdstに格納する
4 malloc()でstrのメモリを確保してやる
後は、自分が習った範囲で好きな方法で (かなり進められない方法もあるが)
0759750
NGNGちなみにmain関数はこうなってます。
main(){
char *p;
p=replace("tracter","act","imot");
while(*p!='\0'){
printf("%c",*p);
p++;
}
printf("\n");
}
でもポインタがよく分からないのでなんで出来たかもわかってません。
0760デフォルトの名無しさん
NGNG>printf("%c",*p);
>p++;
>}
>printf("\n");
嫌がらせ?
0761755
NGNGmalloc使うかバッファを関数使用者に用意させればもっと軽くなるんだけど・・・
char *strreplace(char *str,const char *seeks,const char *reps)
{
size_t seekslen,repslen;
char *p=str;
if(*seeks=='\0')
return str;
seekslen=strlen(seeks);
repslen=strlen(reps);
while(p=strstr(p,seeks)){
memmove(p+repslen,p+seekslen,strlen(p+seekslen)+1);
memcpy(p,reps,repslen);
}
return str;
}
0762750
NGNG嫌がらせなんでしょうか……
>>755さん
知らない文字がいっぱいです(´・ω・`)理解すらできません。
肝心なことを忘れてましたが、ライブラリ関数で使っていいのは
mallocだけだそうです。
0763754
NGNG文字列の置換て、溢れる可能性があるからディスティネーションの
サイズに気を使うから結構面倒だよね。
サイズが与えられない関数だったらstrlenの長さまでしか置換できないし。
0764デフォルトの名無しさん
NGNGmalloc()を使うのならfree()は忘れずに
0765デフォルトの名無しさん
NGNGそれを早くいってよ。
mallocで確保した領域に置換後の文字列を入れればいいの。
ただ、確保する量を考えるときにちょっと面倒かも。
s2の長さがs3の長さと同じか長ければs1分とればいいんだけど、s3の方がs2より長い場合は計算する必要がある。
s1の長さ+(s1に含まれるs2の数*s2とs3の長さの差)+1 これでOKだと思う。
0766デフォルトの名無しさん
NGNGそうなのよ。
>>761はstrcpyみたいにかまわず書き込むタイプだから、置換後に長くなる場合は使用者がきちんと領域を確保していないといけない(^_^;)
0767765
NGNGもしかして置き換えるのは一個だけでよい?>>762
0768デフォルトの名無しさん
NGNGC(VCやC++じゃない初期のC)で時計のプログラムを組むという初歩の
プログラムをやってるんですがOSがwindows2000でエスケープシーケンスが使えません
この場合解決策はありますでしょうか?
0769750
NGNGごめんなさい。ただ置換する文字列が複数個あったらその都度
置き換えるので、二個以上だと足りなくなるような……。
mallocで領域を増やせるのでしょうか。
というか宿題スレ別にあったのですね。すいませんでした〜
0770デフォルトの名無しさん
NGNGWin2000Proじゃ入っていないと思うけど、telnetサーバ立ち上げてTeraTermから。
0771デフォルトの名無しさん
NGNG領域はreallocで増やせるけど、先に計算して確保した方がいいと思うけどなぁ。
0772デフォルトの名無しさん
NGNGつか、mallocしか使っちゃダメとかいうんで、
今、自分でstrlenとかstrstrとか実装してたりするw
0773デフォルトの名無しさん
NGNG一応スレ違い。
Windows2000のコマンドプロンプトでエスケープシーケンスが
使えるかどうかということなんだろうけど、答は使えない。
Cygwinをインストールすれば、使えるようにはなるけど。
0774デフォルトの名無しさん
NGNGそういえばそうだw
>>769
というわけで増やすのは無理(か面倒)だw
それと宿題を代わりにやってくれというわけではないからここでOKだと思う。
0775デフォルトの名無しさん
NGNG16ビットを吐くコンパイラならANSI.SYSを組み込むことでエスケープシーケンスは使える。
0776768
NGNG教えて貰ったものを試してダメだったらOS変えることにします
スレ違い失礼しました(´・ω・`)
0777デフォルトの名無しさん
NGNG専用の関数群があったと思うけど
OSが提供するAPIなのか単なるライブラリなのかは知らないけど・・・
0778デフォルトの名無しさん
NGNGていうか、コンパイラの名前くらいちゃんと書けと。
0779デフォルトの名無しさん
NGNGうってつけがあったぞ
http://www.kumei.ne.jp/c_lang/intro/no_59.htm
0780デフォルトの名無しさん
NGNG待て待て。Cygwinを使えばOSを変える必要はない。
インストールがちょっと手間だが、OSを変えるよりは手軽だ。
0781デフォルトの名無しさん
NGNGうむー、Cなんて久しく組んでなかったからどうもうまくいかん。
文字列の置換なんてRubyとかPerlでgsub一発でやってたもんな、最近。
堕落したもんだ。なわけで時間切れ、寝ます。
>>750
そういうわけだ、すまんな。
ではおやすみ
0782デフォルトの名無しさん
NGNGいやライブラリの同じ機能のものを使うのはマズイだろうけど、
mallocだけしかダメなんていう出題が本当にあるのかはなはだ疑問。
たんなる思い込みではないのだろうか?
0783デフォルトの名無しさん
NGNGえ?まじで?
0784デフォルトの名無しさん
NGNG(・∀・ ) (・∀・ )
(⊃ つ (⊃ つ
Y ,,ノ Y ,,ノ
し ゝ_) し ゝ_)
""""゙""""゙゙""""""""゙""""゙゙""""""""
∧ ∧
アイーン アイーン
∧_∧ ∧_∧
( ・∀・ )gets! ( ・∀・ )gets!
(σ ,,σ (σ ,,σ
(_,,l⌒l (_,,l⌒l
(_) (_)
0785デフォルトの名無しさん
NGNGえらい昔のに反応するね。
getchar の返す値は EOF + 0〜255 だから
int じゃないと表現できない。
0786デフォルトの名無しさん
NGNG×EOF + 0〜255
○EOFとunsigned charが取り得る全ての値
0787Cマガ、日系ソフトに続く第3の本でないかな・・・
NGNG読み返し中
0788デフォルトの名無しさん
NGNGvoid put_rstring(const char *st){
const char *temp = st;
while(*st++) ; ・・・A
if(st != temp)
while(--st >= temp)
putchar(*st);
}
上の関数はscanfで受けた文字列を反対から表示する関数なんですが、
なぜか表示するときに半角スペースが入ります。(”SEC”と入力したら、” CES”みたいに)
Aの部分を、
while(*st)
st++;
とすると入らないんですが、なぜでしょうか?
0789デフォルトの名無しさん
NGNGと
while(*st)
st++;
の違いを考えましょう。
0790デフォルトの名無しさん
NGNGfor( ; ; st++)
0791789
NGNGうーん、ちょっとわかんないです・・・。
0792デフォルトの名無しさん
NGNGif ( *st++ );
if ( *st ) st++;
この違いと同じだ
0793789
NGNGインクリメントする回数が前者は一回多くなってしまっているんですね。
ありがとうございました!
0794デフォルトの名無しさん
NGNGfor(i=0; ;i++)
iはいくつから処理される? いつインクリメントされる?
0796デフォルトの名無しさん
NGNG虚しいな
0797デフォルトの名無しさん
NGNG0798デフォルトの名無しさん
NGNG0799798
NGNG0800デフォルトの名無しさん
NGNGsegmentation faultとなってしまいます。
どう直したらいいでしょう。昨日、cをはじめたばかりの厨です。
#include <stdio.h>
#include <string.h>
void put_rstring(const char *string){
const char *temp = string;
while(*string++)
if(string != temp)
while(--string >= temp)
putchar(*string);
}
int main(void) {
char *st;
scanf("%s", &st);
put_rstring(st);
}
0801デフォルトの名無しさん
NGNGstはどこを指しているのかな?
0802デフォルトの名無しさん
NGNG0803800
NGNGchar string[25];
scanf("%s", &string);
put_rstring(string);
}
こうにしたら、最初の1文字だけ出るようになりました。
全然reverseされてない。
0804デフォルトの名無しさん
NGNGだからつまらないってば。
0805800
NGNG0806デフォルトの名無しさん
NGNGvoidへのポインタはC++だとキャストしないと
他のデータ型のポインタ変数に代入できないのに
Cだとキャスト無しで代入できて、
問題なく代入したデータ型のポインタとして使えるんですか?
0807デフォルトの名無しさん
NGNG自分でdefineするしかないのですか?
0808デフォルトの名無しさん
NGNG0809デフォルトの名無しさん
NGNG書いてたしかめるべし。
たぶん、大丈夫だと思う。
こういうint a=(char*)sみたいのは
キャストしないとだめだが・・普通せんけど
0810デフォルトの名無しさん
NGNGC++は文法上の型チェックは厳しいッスからね
0811デフォルトの名無しさん
NGNG0812デフォルトの名無しさん
NGNGconst double PI = 4*atan(1.0);
どうでもいいけど最近のコンパイラはgccもBCBにしてもsqrt(2)みたいに引数が
double型の関数に整数を書いてもきちんとキャストされるのね
0813デフォルトの名無しさん
NGNG#include <math.h>
const double PI = M_PI;
> どうでもいいけど最近のコンパイラはgccもBCBにしてもsqrt(2)みたいに引数が
> double型の関数に整数を書いてもきちんとキャストされるのね
プロトタイプ宣言以前のジジイハケーソ
0814デフォルトの名無しさん
NGNGconstにはできない
>>813
ANSIにはない
0815デフォルトの名無しさん
NGNGコンパイラによっては使えない。
だから、
#ifndef M_PI
#define M_PI 3.141592653589793
#endif
と自分で定義する。
0816デフォルトの名無しさん
NGNG0817デフォルトの名無しさん
NGNG0818デフォルトの名無しさん
NGNG0819817
NGNG0820デフォルトの名無しさん
NGNG今のところ独学で入門書3冊を読んだ後、K&Rの途中まで進んでいます。
けど現場のレベルが分からないもんでなんか不安です。
K&Rをだいたい理解出来ていれば現場に行っても大丈夫ですか?
0821デフォルトの名無しさん
NGNG職種によって必要な知識は千差万別でツ。
0822デフォルトの名無しさん
NGNGなかには >>817 のような人が活躍中(?)の現場もあります。
貴方の脳味噌が優秀で現場が真っ当な所なら研修で必要最低限度のことは教えてくれます。
どうにも使えないようなレベルの人は真っ当な所なら落としてくれます。
駄目なところならマニュアルのカタカナ読むのを嫌がらないだけでも歓迎してくれます。
0823デフォルトの名無しさん
NGNG途中25桁ほど抜けてるぞ。
0824デフォルトの名無しさん
NGNGまずは就職してから聞きなよ(^_^;)
0825820
NGNG817のような人が活躍できるイメージが湧きませんが、
取りあえず就職頑張ってみます。
0826デフォルトの名無しさん
NGNG0827デフォルトの名無しさん
NGNG糞不味いラーメンを一生作り続ける向上心ゼロのプロだっているわけで。
0828デフォルトの名無しさん
NGNG保守性のかけらもなくてびっくりした。
シンプル イズ ベストなソースがかけて
まとめるべきところはまとめられて
他と合わせるべきところは合わせられて
意味のあるコメントがかけて
人並みにホウレンソウができれば
普通にそれなりに活躍できると思われ。
0829デフォルトの名無しさん
NGNG0830デフォルトの名無しさん
NGNGコーディング規約をキチンと決めてないか
同僚に恵まれてないか
のどれか
0831デフォルトの名無しさん
NGNGそれじゃ仕事になってない。
0832デフォルトの名無しさん
NGNG0833デフォルトの名無しさん
NGNGおまえが理解できないだけ。
0834デフォルトの名無しさん
NGNG0835832
NGNG0836デフォルトの名無しさん
NGNGここにはC言語くらいしか能が無くて
死滅したら食っていけない人が沢山いるんだから
0837デフォルトの名無しさん
NGNGおまえが理解できないだけ。
0838デフォルトの名無しさん
NGNGじゃなきゃ C++ だの C99 だのなんて作らない。
しかし、COBOL や FORTRAN77 のように
しつこく生き残ることも確かだろう。
(これらと比べるのは C がちょっと可愛そうだが)
0839デフォルトの名無しさん
NGNG0840デフォルトの名無しさん
NGNG0841デフォルトの名無しさん
NGNG代替となりうる(なっている)のはCぐらいだろ。
C++は、なんか大げさだし。
0842デフォルトの名無しさん
NGNGunsigned long int じゃ駄目なんでしょうか?
0843デフォルトの名無しさん
NGNG0844デフォルトの名無しさん
NGNG0845デフォルトの名無しさん
NGNG0846デフォルトの名無しさん
NGNG0847デフォルトの名無しさん
NGNGなぜ?
0848デフォルトの名無しさん
NGNGtypedefの役割をわかっていますか?
簡潔にだよ!簡潔に!わかっていますか!
(unsigned long int)この型を振り回したソースみてどう思う?
て、俺のソースだよ。
0849デフォルトの名無しさん
NGNG釣りか?
0850デフォルトの名無しさん
NGNGlongがサイズを表すのに適切な型とは限らないから。
0851デフォルトの名無しさん
NGNG0852デフォルトの名無しさん
NGNG??
0853デフォルトの名無しさん
NGNGtypedefの役割をわかっていますか?
0854デフォルトの名無しさん
NGNG環境によってその定義を変更してやることによって
移植性の高いコードを書く事もできる優れものだな。
FILE とか環境によって随分と定義が違ってるぜ。
尤も、特定の環境での定義に依存したコードを書いた途端
移植性が低くなってしまうがな。
0855デフォルトの名無しさん
NGNG環境によって名前を変更してやることによって
どの環境で書かれたか分かる優れものだな。
0856デフォルトの名無しさん
NGNG0857デフォルトの名無しさん
NGNGというコンパイルエラーがでるんですが、どうなんでしょうか?
何が原因でしょうか。
if(seisuu%2=1){
printf("ガクガク");
}
この部分です
0858デフォルトの名無しさん
NGNGなにこれ、なにがしたいの?
0859デフォルトの名無しさん
NGNG0860デフォルトの名無しさん
NGNG0861デフォルトの名無しさん
NGNGseisuu % 2 == 1
ご愁傷様です
0863デフォルトの名無しさん
NGNG0864デフォルトの名無しさん
NGNGどうもありがとうござます
0865デフォルトの名無しさん
NGNGint main()
{
int i,j;
for(i=1;i<=9;i++){
for(j=1;j<=9;j++){
printf("%d ",i*j);
if(j==9){
printf("\n");
}
}
}
}
これを実行して、縦の列をそろえたいんですが、
どこを工夫したらいいですか
0866ちよ
NGNGhttp://www1.free-city.net/home/kotarou/page002.html
0867デフォルトの名無しさん
NGNG0868デフォルトの名無しさん
NGNG0869デフォルトの名無しさん
NGNG0870シンジ
NGNG0871デフォルトの名無しさん
NGNGputchar(j==9?'\n':' ');
0872デフォルトの名無しさん
NGNGI○
0873デフォルトの名無しさん
NGNG0874デフォルトの名無しさん
NGNGfor(j = ...) {
...
}
putchar('\n');
}
0875デフォルトの名無しさん
NGNGIP隠れたら、インターネットできません。
ルーティングのお勉強しましょう。
0876デフォルトの名無しさん
NGNG0877デフォルトの名無しさん
NGNGhttp://yahooo.s2.x-beat.com/linkvp/linkvp.html
0878デフォルトの名無しさん
NGNGそれを言うんだったら、何でD〜Z言語がないの?
って、つっこんでみる。
0879デフォルトの名無しさん
NGNG敬意を表してC++になった。結構有名な話。ちなみにC++はANSIで1999年に
標準化されたとっても新しいものです。でも規格化以前から存在しいました。
0880デフォルトの名無しさん
NGNG0881デフォルトの名無しさん
NGNGつまり後輩が作ったということなのか
0882デフォルトの名無しさん
NGNG>>853, >>854, >>855, >>856は無視か
sizeof(unsigned long) < sizeof(void*)な環境で
size_tをどうtypedefする気なのか聞いて見たい
↑だけ空想論とかぬかすなよ、てめーら
0883デフォルトの名無しさん
NGNG0884デフォルトの名無しさん
NGNGそんな環境あるかよ。妄想もたいがいにしろ。
sizeof(unsigned long) > sizeof(void*)な環境ならあるが。
0885デフォルトの名無しさん
NGNG0886デフォルトの名無しさん
NGNGISOから規格書(14882)とりよせて年式を確認してみろ
ttp://www.jsa.co.jp/
0887デフォルトの名無しさん
NGNG妄想? 自信があるなら、そんなに改行するなよ
0888デフォルトの名無しさん
NGNGs/co/or/
0889デフォルトの名無しさん
NGNG初心者です。
例えば、どんな環境があるんですか?
0890デフォルトの名無しさん
NGNG0891デフォルトの名無しさん
NGNG移植性が聞いてあきれらあ
0892デフォルトの名無しさん
NGNGプレステ2はsizoef(long)==8なんだよ。覚えとけ。
0893デフォルトの名無しさん
NGNGうん、えらい
0894デフォルトの名無しさん
NGNG0895デフォルトの名無しさん
NGNG0896デフォルトの名無しさん
NGNG0897デフォルトの名無しさん
NGNG主に、添え字として使用する時に使うべきものなので
その必要な大きさは、ポインタの大きで十分であると…
が、特定の環境等(どうしてもlongが128ビット必要とか)で
unsigned long を、添え字として使用するには
無駄なので(上記例ではメモリが128ビット分あれば無駄と言う訳ではないが…)
unsigned long int 等とはせずに、
その環境に応じて必要なサイズにすれば良いと言う事で…
つーか、レスを読んでも、いまいち、論点が見えないんだけど、
一体、誰が、どう言う主張をしてるの?
0898デフォルトの名無しさん
NGNG0899デフォルトの名無しさん
NGNG0900デフォルトの名無しさん
NGNG移植性と言うよりも
ただ単に、各々の環境で必要な分とすれば良いじゃないの?
って事だと思う (まぁ、いろいろと意見もあると思うけど…)
だいたい、移植性が問題なのなら "char" も "short" も "long" も
全てまとめて int 型の1つにしてしまえば良い(規格自体を)し
それぞれ、型が分かれているのは、それぞれの環境で
それぞれ最大限に資源を活用出来るようにする為だと思うので
"size_t" が決められていないのも、その一環なのだと思う…
0901デフォルトの名無しさん
NGNGある変数のサイズを固定したい場合、
C の環境によって型のサイズが違っても良いという仕様は困る。
そこで、typedef した型名を使い、
環境によって定義を切り替えてやれば解決する。
また、環境によって構造体を使わないと実装できないか、
普通の型で十分実装できるか異なるものも、
typedef を使えば同じコードで処理できる。
単純化:
複雑な型名を短くできる。
例えば関数ポインタや配列ポインタの型名は複雑だが、
typedef してしまえば簡単な名前で扱う事が出来、
間違いを少なく、そして可読性も上げることができる。
実体を定義する時に構造体型や列挙子型の
struct や enum を省略できるようにするのにも使える。
0902デフォルトの名無しさん
NGNG{
/* �@ */
scanf("%d", n);
switch(n){
case 1:
break;
case 2:
{
while(1){
scanf("%d", m);
switch(m){
case 1:
break;
case 2:
break;
/* �A */
}
}
}
}
}
こんな感じであって、switch(m)のcase2: の�Aから�@にいくようにするにはどうすればいいのでしょうか?
0903デフォルトの名無しさん
NGNG0904デフォルトの名無しさん
NGNGロジックを見なおす。
for example.
先ずmain()全体をループに入れ、
ネスト深すぎるから外のcase2のwhile辺りを関数化して、
中のcase2でフラグをセット。
main()に戻ったところでフラグがセットされていたらループ継続。
0905デフォルトの名無しさん
NGNGという処理はループよりgotoだろ。盲目的安置でもなければ。
0906デフォルトの名無しさん
NGNGswitch(n) 以下を関数化し(例えば foo とする)、
do {
scanf("%d", &n); /* ← & も忘れずに! */
} while(!foo(n));
とし、foo はループを継続する場合(異常状態?)は 0 を、
ループを終了する場合(正常状態?)は 1 を返すようにする。
0907デフォルトの名無しさん
NGNGint *n=&i;
としているから&をつけなくてもいいんでつ。
0908デフォルトの名無しさん
NGNG0909デフォルトの名無しさん
NGNGそれはウソだろう。switch(*n)と書いてないんだから。
0910907
NGNG0911デフォルトの名無しさん
NGNG0912デフォルトの名無しさん
NGNG0913デフォルトの名無しさん
NGNG↑むしろこれ
0914デフォルトの名無しさん
NGNG→↑
0915デフォルトの名無しさん
NGNG← →
↓
0916デフォルトの名無しさん
NGNG0917デフォルトの名無しさん
NGNG0918デフォルトの名無しさん
NGNG0919デフォルトの名無しさん
NGNG(・C・)
0920デフォルトの名無しさん
NGNG0921デフォルトの名無しさん
NGNG0922デフォルトの名無しさん
NGNG0923デフォルトの名無しさん
NGNG御茶ノ水博士?
0924デフォルトの名無しさん
NGNG0925デフォルトの名無しさん
NGNG0926デフォルトの名無しさん
NGNG0927デフォルトの名無しさん
NGNGどんな方法が有りますか?
apiを叩くのが一番早いのでしょうか?
0928デフォルトの名無しさん
NGNG0929デフォルトの名無しさん
NGNGていうか、OSや環境固有のAPIを話題にする時点でスレ違いだ罠
0930デフォルトの名無しさん
NGNG0931デフォルトの名無しさん
NGNG0932デフォルトの名無しさん
NGNG1. バイナリモードで fread/fwrite を使って操作する
2. 丁度いいサイズでバッファリングする
くらいのもんだ。
0933デフォルトの名無しさん
NGNG高速にファイルをコピーするライブラリ、ツールなどを探す。
0934デフォルトの名無しさん
NGNG0935デフォルトの名無しさん
NGNG0936デフォルトの名無しさん
NGNG0937デフォルトの名無しさん
NGNGwhile(i--)
puts("");
0938デフォルトの名無しさん
NGNGでは、特定の文字列だけとか指定は可能でしょうか。
0939デフォルトの名無しさん
NGNGバックスペースを表示すればいけることもある。
環境によっては変なのが表示されるけど。
0941デフォルトの名無しさん
NGNGスレ違いだってばさ。
>>933の方法が一番無難だと思うがな。
0942デフォルトの名無しさん
NGNG0943デフォルトの名無しさん
NGNGファイルに文字列を書き込みたいのだが
Cではinsertで書き込む関数はないのか?
たとえばファイルの中身が
aaaa
で書き込む文字列がbbbbだったとき
aabbbbaaというふうにファイルを更新したいとき・・・
0944デフォルトの名無しさん
NGNG0945デフォルトの名無しさん
NGNGhttp://yahooo.s2.x-beat.com/linkvp/linkvp.html
-----------------------------------------------
0946デフォルトの名無しさん
NGNG「Cでは」って、そんな機能のある言語ってあるの?
0947おしえてください
NGNGワタシは、scanf()を使っていました。なぜそんな事をいわれたのか、不思議なんです。
普通の会社でも、そんなこといわれますか?私の上司がうるさかっただけなのですか?
getcharって、関数でなく、マクロなのですか?
0948デフォルトの名無しさん
NGNGis〜もまずマクロだろうけど、関数であってもいいと思うし。
0949デフォルトの名無しさん
NGNGつーか scanf 使ってる時点で(
0950デフォルトの名無しさん
NGNG0951デフォルトの名無しさん
NGNGつーか、scanf()を使ったら仕事にならんって。
このスレ、遡って読めば判ることだ。
或いはC-FAQにも出てたろ。
0952おしえてください
NGNGワタシは、入社したてで、右も左も分からないです。
なんで、だめなのか、自分ではわからないのです。教えていただけませんか?
>つーか scanf 使ってる時点で(
↑の意味がちょっと分かりません。普通のCプログラムは、scanfみたいな、入門書に載っているような
関数は、馬鹿らしくて、使わないと言う意味なんでしょうか。。
0953デフォルトの名無しさん
NGNGちょっとタイトル変えるけど堪忍して。
0954デフォルトの名無しさん
NGNGバッファーオーバーフロー
0955デフォルトの名無しさん
NGNG新スレ
0956デフォルトの名無しさん
NGNG0957おしえてください
NGNGC−FAQみてきたら、載ってました。たしかに、バッファオーバーフローって
かいてありました。何の事か、いまいちよく分からんのですが、使わないようにします。
getsも、使っちゃいけないと書いてありますね。入門書は、うそつきなのですね。こんな僕でも、これからやっていけるか、不安になってしまいました。
0958デフォルトの名無しさん
NGNGそういう関数も問題があると知っていても使わなき
ゃならないんだよ。
それが嫌なら早くC++をおぼえろっつーこと。
0959デフォルトの名無しさん
NGNG仕事ではもっと安全な別の関数を使ってやりくりするが吉。
0960デフォルトの名無しさん
NGNG0961デフォルトの名無しさん
NGNG大丈夫。
今日は、scanfを使わないということを覚えましたよね。
物事は一歩一歩積み重ねて覚えていくものです。
がんばってください。
0963デフォルトの名無しさん
NGNGどんな職場だ。
0964デフォルトの名無しさん
NGNGgetcharを使うべきところに、scanfを使うような奴がいる職場。
0965デフォルトの名無しさん
NGNG0966デフォルトの名無しさん
NGNGi = atoi(buf);
0967デフォルトの名無しさん
NGNG0968デフォルトの名無しさん
NGNG何でそんなに喧嘩腰なの?
0969デフォルトの名無しさん
NGNG0970デフォルトの名無しさん
NGNGscanfは使わない、を一般論と言うアフォを論破したい
0971デフォルトの名無しさん
NGNG誰のことを言ってる?
0972デフォルトの名無しさん
NGNG0973デフォルトの名無しさん
NGNG0974デフォルトの名無しさん
NGNGchar buf[MAX];
0975デフォルトの名無しさん
NGNG0976デフォルトの名無しさん
NGNG0977デフォルトの名無しさん
NGNG0978デフォルトの名無しさん
NGNG入力された数字がiに収まる保証はどこにある
0979デフォルトの名無しさん
NGNG>>974じゃないが、そうくると思った。
じゃあ、scanfは無限の長さの数字列読めるのか?
そういうのを考慮した場合、
scanfとfgetsとどちらが対処できるか考えればscanfを選ぶことはない。
0980デフォルトの名無しさん
NGNGそんなのは未定義でいいんだよ
atoiと同じロジックをトレースしてどこまで解析したかを返す関数とか書いてるのかてめーわ
0981デフォルトの名無しさん
NGNG別な話、無限の数字列を読むロジックは作ればできる
0982デフォルトの名無しさん
NGNG別に無限にしなくても限界がある。
1行が長すぎると同じ行を2回以上scanfしてしまう。
これにどうやって対処する?
0983デフォルトの名無しさん
NGNG殆どの場合において暴走するけど、
それも再現しないといけないの?
0984デフォルトの名無しさん
NGNG>1行が長すぎると同じ行を2回以上scanfしてしまう。
は? もしかして、あの処理系の話か?
0985デフォルトの名無しさん
NGNG暴走してんのはてめーのアプリだ!
scanfはスペックを守っているに過ぎん
こういうアフォがscanfは使わないとか言ってるのを
聞くたびに耳が腐る思いだ
0986デフォルトの名無しさん
NGNG支離滅裂すぎ
入力されたものが確実に解析できる訳ではないのだから
どちらで、あっても問題はない
問題なのは、入力されてるデータが無限に続いた場合
プログラムで制御して、入力を打ち切れるか、制御出来ないかの差
0987デフォルトの名無しさん
NGNG確実に解析できなかった、その先で何をしているんだてめーの関数わ
もしかして、いちばん困ることをしでかしてくれるのか?
0988デフォルトの名無しさん
NGNGうれし、はずかし?
0989デフォルトの名無しさん
NGNGエラー返すに決まってんじゃん
つーか、ツッコミ所違うし
0990デフォルトの名無しさん
NGNGあんた素人でしょう?プロとしてアプリを作ることになれば、
嫌でもscanfを使うなって事が分かるよ。
0991デフォルトの名無しさん
NGNGfgetsでか?
0992デフォルトの名無しさん
NGNGいいやCでメシ食ってるよ
嫌でも憶えることは
ブツのスペックだ
0993デフォルトの名無しさん
NGNG止まったな…
まぁ、結論を言うと、そんな事を調べるより(scanf()が使えるかどうか)
scanf()を使わないようにした方か早いだろ?
0994デフォルトの名無しさん
NGNGこのスレは
0995デフォルトの名無しさん
NGNG0997デフォルトの名無しさん
NGNGとしておけばいいってこと?
素敵な職場だね。
0998デフォルトの名無しさん
NGNG標準入力から入力する場合でも、入力用の関数とかつくらんか?
0999デフォルトの名無しさん
NGNGそういう仕様にしてるのがscanfの代用としてよく引き合いに出されるfgetsだろうが
1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。