1 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 12:49:22 ] C言語の入門者向け解説スレです。 ・C++言語はスレ違いです。 ・分からない事をなるべく詳しく書いて下さい。 ・ソースコードを晒すと答えやすくなるかもしれません。 ・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 前スレ C言語なら俺に聞け(入門篇) Part 22 pc11.2ch.net/test/read.cgi/tech/1196489491/ 教えて欲しいのではなく丸投げしたいならこちらへ C/C++の宿題を片付けます 101 pc11.2ch.net/test/read.cgi/tech/1197132472/
792 名前:785 mailto:sage [2008/01/14(月) 02:04:17 ] cron調べましたが使えそうです ありがとうございました
793 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 02:04:31 ] OSに依存する
794 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 02:36:42 ] >>791 winだったら、system("CLS");
795 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 02:38:30 ] >>791 win以外ではエスケープシーケンスとか
796 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 04:25:03 ] clearコマンドが使える場合もあるけど、鼬害。
797 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 10:50:14 ] sysytem("cls")だとちらつきがひどいんですが ちらつかないようにって可能なんでしょうか。 もし可能であるならばどうやればいいのでしょうか。
798 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 10:53:06 ] ちらつきって コンソールでゲームでもつくってんのか?
799 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 10:55:58 ] エスケープシーケンスなりCursesなりコンソールAPIなり好きなの使っとけ 細かい制御が必要なら環境かけっつうの
800 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 10:56:23 ] 毎回書き換えが必要な所のみ書き換えるか 全画面を一度に書き換えるか。 どちらにしろ標準関数だけじゃ辛いので、 こういった関数を使うしかない。 msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpfileio/html/Toppage_Console.asp
801 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 11:26:59 ] ちょっとしたゲームをつくっています。 環境はWinです。 同じ文字列が右から左に移動していき左端にきた文字は消えていくというのをしてるのですが おもったようにちらつきを消すことができまちぇん。。
802 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 11:40:12 ] >>801 消さずに上書き。 変化の無い部分は書き換えない。
803 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 11:48:49 ] う、うわがき・・・ 上書きってどう書けばいいのかわかりません。。。。 ちょっとした例示してもらえませんか?
804 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 11:49:56 ] 消したい文字列と同じ座標にスペースか何かで上書きするとか
805 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 11:58:06 ] // >>801 #include <stdio.h> #include <string.h> void func(int width, const char * str) { int len = strlen(str); for (int ic = 0; ic <= len; ++ic) { printf("\r%*.*s", width, ic, str); fflush(stdout); sleep(1); } for (int ic = 0; ic < width; ++ic) { printf("\r%*s%*s", width - 1 - ic, ic < width - len ? str : str + ic + 1 - width + len, ic + 1, ""); fflush(stdout); sleep(1); } } int main() { func(20, "abcde"); return 0; }
806 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 12:41:05 ] int main(int argc, char **argv){ FILE *fp; int i, j, a, b; short int image[HEIFGT][WIDTH]; 上のプログラムを一行ずつ何をしてるんですか? a = atoi(*argv[1]); b = atoi(*argv[2]);
807 名前:806 mailto:sage [2008/01/14(月) 12:42:21 ] あと下の a = atoi(*argv[1]); b = atoi(*argv[2]); も教えてください
808 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 12:49:27 ] Windowsでもcurses使えるんだっけか?
809 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 12:54:39 ] >>808 移植はされてると思う。
810 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 12:56:27 ] >>807 プログラムの起動時に渡されたコマンドラインの引数を、数値に変換してるんだけど、それだとバグっていて動かないね。
811 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 14:19:43 ] 806の日本語がバグっとる
812 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 16:12:11 ] 変換前:This 変換後:hisTay 変換前:is 変換後:siay 以下のコードで上のように出力して欲しいのですが上手くいきません 何故でしょうか? int main() { int i; char s[256] = "This is a pen", *word; word = strtok(s, " "); printLatinWord(word); word = strtok(NULL, " "); // wordに"ay"が入る。何で? printLatinWord(word); return 0; } void printLatinWord(char *word) { char *alp; /* 通俗ラテン語風に変換して出力 ※先頭の文字を末尾に移し、その後ろにayを付加する。 */ printf("変換前 : %s\n", word); strncpy(alp, word, 1); alp[1] = '\0'; strcat(word, alp); strcat(word, "ay"); printf("変換後 : %s\n", &word[1]);\ }
813 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 16:29:28 ] >>812 char *alp; ポインタにぶちこむな char alp[1000]; 的な感じにしないと
814 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 16:32:59 ] >>812 strtokは、与えた文字列(この場合s)の中を書き換えながら、そこを指すポインタを直接返す。 たとえば、"This is a pen" を与えると、strtokは最初 "This\0is a pen" ↑ ここを返す。文字列は\0で終わる決まりなので、"This"が得られる。2回目は "This\0is\0a pen" ↑ ここを返す。"is"が得られる。3回目は "This\0is\0a\0pen" ↑ ここを返す。"a"が得られる。 こういう動作なので、帰ってきた文字列に直接strcatで追加すると、 後ろの文字列(=次に返される文字列)が書き換わってしまう。 つまり、そのprintLatinWordを実行すると、sの中は "ThisTay\0a pen" のように書き換わり、次にstrtokが返すはずだった "is" は "ay" になってしまう。
815 名前:812 mailto:sage [2008/01/14(月) 16:42:27 ] >>813 なんとなく*alpになってしまいました まだ違いが良く分かってないので頑張って勉強します >>814 wordを書き換えるとsも変わってしまうんですね。なるほど 丁寧にどうもです *wordをword[256]に、word = strtok(s, " ");をstrcpy(word, strtok(s, " "))に直して上手くいきました
816 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 16:55:04 ] 大学の課題で一部分からない点があるので、よろしければヒントをお願いします。 #include<stdio.h> #define MAX 10 int inputnum(int num[]){ int i; for(i=0;i<MAX;i++){ scanf("%d",num[i]); } return num[]; } int main (void){・・・・・・と続くのですが、 上記のサブ?ルーチンに表記の間違いがある場合、修正せよという問題です。 ですが配列の返し方など全て自習ということでここで止まってます…。 構文にエラーがあるというところまで分かっているのですが、 どうすえればいいか分かりません。ご教授願います。 orz
817 名前:816 mailto:sage [2008/01/14(月) 16:56:30 ] For文が見にくくなってしまいすいません…。 よろしくお願いします。
818 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 16:59:05 ] void inputnum(int num[]) { int i; for(i=0; i<MAX; i++) scanf("%d", num + i); }
819 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 17:00:36 ] >>816 return 0;とでもしておけ 返さなくても渡された中身は書き換わってる なんでかはポインタについて勉強せんと・・
820 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 17:06:48 ] scanf("%d", &num[i]); もでした
821 名前:816 mailto:sage [2008/01/14(月) 17:17:55 ] >>818 ,>>820 丁寧にありがとうございます。 >>819 ということは>>818 の通りvoid宣言でいいのですね…。 後でじっくり調べてみます。ありがとうございます。
822 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 17:21:48 ] int inputnum(int num[], size_t num_size) { int i; for(i=0; i<num_size; i++) if(scanf("%d", &num[i]) != 1) return 0; return 1; }
823 名前:816 mailto:sage [2008/01/14(月) 17:58:20 ] >>822 すみません、「size_t num_size」とは何でしょうか? また戻り値がどこの変数へ戻るのか分かりません…。 また1つ分からない事があるのでどなたかご教授お願いします orz サイズを指定せずに配列を作る事は可能でしょうか? int num[]; //これでは要素が無いためサイズが0であるのでできないということまで 分かりましたがそれ以上で詰まっています。 よろしくお願いします。
824 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:04:39 ] >>823 size_tは型。たぶんunsigned intと同じである環境が多いのかな? 要は自然数用型とか思っとけばとりあえずOK。(サイズにマイナスはないからね) 戻り値がどこに入るかは呼び出し側次第。 int func( void )という関数があったとして main内で「int a = func( );」 としてればfunc内の戻り値がa内に入る。
825 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:06:53 ] >>823 サイズを指定しない配列は無理 malloc系を使えば好きな大きさで確保したり、大きさ変えたりはできるけど
826 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:08:05 ] char s[] = "もけあ"; とかはできるけどそれは宣言のときだけね
827 名前:816 mailto:sage [2008/01/14(月) 18:32:46 ] >>824 詳しくありがとうございます。 int inputnum(int num[], size_t num_size) メインルーチンの方で上の2つの変数の値を指定すればいいということですね。 >>825-826 明確にありがとうございます。 入力する回数を予め決めるか、 要素次第ということですね。大変参考になりました。 皆さんありがとうございました。
828 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:59:16 ] int func(int num){ return !(num%2); } 上記の関数でnumが奇数の場合と偶数の場合の戻り値はそれぞれどうなりますか? 有識者の方宜しくお願いします。
829 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:59:55 ] タメセカス
830 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:06:49 ] 算数じゃん。
831 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:07:11 ] >>828 何がわからんのだ?%演算子か?!演算子か? 関数や戻り値がわかってるのならどっちかだろうな。 num = 2; num % 2 == 0; !0 == 1 num = 1; num % 2 == 1; !1 == 0; こんなもんでわかるだろ。 ってか>>829 で良かったかな。
832 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:08:07 ] 自己顕示欲・・・
833 名前:816 mailto:sage [2008/01/14(月) 21:14:46 ] すみません。また1つ疑問ができてしまいましたのでご教授お願いします… orz 配列inputのサイズ変数MAXをサブルーチンで決定したいのですが、 int MAX; void sub(int MAX){ scanf("%d",&MAX); } int main(void){ input[MAX]; ・ ・ ・ } とした時に、「sub(MAX);」をどこで定義すればいいのでしょうか? それともルーチンではできないでしょうか? よろしくお願いします orz
834 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 21:18:07 ] (^ん^)?
835 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 21:18:29 ] とりあえずC言語における「定義」の意味を調べなおした方が
836 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 21:19:26 ] 日本語でおk MAXの値はどこでも変えられるけど? MAX = 4;とか好きにすれば? それとも配列のサイズ変えたいの?
837 名前:816 mailto:sage [2008/01/14(月) 21:19:52 ] >>833 訂正です、すみません。 void sub(int MAX){ scanf("%d",&MAX); } int main(void){ int MAX, input[MAX]; ・ ・ ・ }
838 名前:816 mailto:sage [2008/01/14(月) 21:22:24 ] >>835 すみません、定義ではなく呼び出しでした。ご指摘ありがとうございます。 >>836 サイズを入力で指定したいのですが、そのプログラムはサブルーチンで記すことが条件です。
839 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 21:25:06 ] >>833 若干エスパー。 丸写しはどーかと思うけど、こういうことか? void sub(int *MAX){ scanf("%d",&MAX); } int main(void){ int MAX; int *input; sub(&MAX); /* int input_NG[MAX] <- これはムリ。配列の宣言では定数しか使えない */ input = malloc(MAX * sizeof(int)); ・ ・ ・ free(input); }
840 名前:816 mailto:sage [2008/01/14(月) 21:37:44 ] >>839 ご回答ありがとうございます。 分かりづらくなってしまい申し訳ございません。 int MAX = 10; int main(void){ int main[MAX]; ・ ・ ・ このように、最初から数値を指定するのではなく、 MAXの値をscanf等の入力で毎回変更することはできませんか? またできる場合、それをサブルーチンでまとめられますか? イメージはこんな感じになります。 scanf("%d",&MAX); int input[MAX]; 何度もすみませんがよろしくお願いします。
841 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 21:53:30 ] >>840 一応そのイメージで839を書いたんだけど・・・。 要はmallocを使いたくない(or知らないので分からない)ってこと? どうしても配列ってことであれば、おそらく分からないだろうけど C89ならムリ。C99なら出来る。 つまりコンパイラによる。 例えば俺が知ってるうちではVCでは出来ない。gccは最近のであれば出来る。
842 名前:816 mailto:sage [2008/01/14(月) 21:53:33 ] >>839 /* int input_NG[MAX] <- これはムリ。配列の宣言では定数しか使えない */ すみませんようやく意味が分かりました。 本当に詳しくありがとうございました。
843 名前:816 mailto:sage [2008/01/14(月) 22:01:13 ] >>841 #include <stdlib.h>とセットでちらっとだけ見た事があるので 調べて分かれば使えると思いますが、分からないということでお願いします。 別のプログラムで指定した値をファイルに出力し、当プログラムで読み込むというような方法はあるのでしょうか?
844 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:08:52 ] >>843 とりあえずfopen辺りでファイルの入出力ができるよ(他にもあるけど) それも分からないの?
845 名前:816 mailto:sage [2008/01/14(月) 22:17:29 ] >>844 そこは以前にある程度習っているので復習すればできると思います。 ありがとうございます。
846 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:18:52 ] >>843 >調べて分かれば使えると思いますが、分からないということでお願いします。 お願いされてもwww とりあえず十分に大きい固定サイズの配列を用意するか、 mallocを調べるのが良いと思うよ。
847 名前:816 mailto:sage [2008/01/14(月) 22:34:59 ] >>846 >お願いw すみません余計でした^^; >固定サイズ とても参考になりました。 0〜固定サイズまでで値を指定することならできそうです。 ありがとうございました。 時間があればmallocを扱えるようにしたいと思います。
848 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:44:03 ] 質問。 ハッシュ法について勉強してるんだけど、格納されたデータ(学籍番号と氏名)を読み取る際に、学籍番号の数(生徒数)を読み取る部分的なプログラムが分かりません。 どういう構文使えばいいでしょうか? 読み込みはこんな感じです↓ /* データファイルの読み込み */ if ((fp=fopen("DATA","r"))==NULL){ printf("File \'DATA\' is not found !\n"); } while ( fscanf(fp, "%d %s", &data_zipcode, data_address) > 0 ) { printf("%d : %s\n", data_zipcode, data_address); /* データの格納 */ if ( StoreData(data_zipcode, data_address) == 0 ) { printf("Hash Table is full !\n"); } } fclose(fp);
849 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:05:19 ] >>848 ファイル内のデータの総数を知りたいなら、一回空読みすればよかろ。 つーか、それってハッシュ法と関連するのか?
850 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:50:05 ] >>849 ハッシュするための下準備。んで、出来ました。ありがとうございました。
851 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 20:06:23 ] if ((fp=fopen("DATA","r"))==NULL){ printf("File \'DATA\' is not found !\n"); } いっつも思うんだけどさ、これって何したいの? ファイルオープン失敗したまま処理続けるなよ
852 名前:N [2008/01/15(火) 20:07:27 ] ナップザック問題を解説付きで教えてください。
853 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 20:17:11 ] >>851 その箇所だけならなんとも言えんだろーがw
854 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 21:25:42 ] #include <stdio.h> #include <stdlib.h> #define MAX_LINE 128 int main(void); int main(void) { char buf[MAX_LINE]; int n; printf("降水確率を入力してください。\n"); gets(buf); n = atoi(buf); ptintf("降水確率は %d %% です。\n", n); if (n >= 50){ printf("傘を忘れずにね。\n"); } else { printf("傘はいりません。\n"); } printf("いってらっしゃい。\n"); return(0); } /*これ↑のどこが悪いのか教えてください*/
855 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 21:31:57 ] gets(),ptintf,return(0);
856 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 21:47:31 ] ていうかなんでmain関数にもプロトタイプ宣言してんの?
857 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 22:01:51 ] >>852 ググった方が早いと思うよ。 検索ワードはナップザック・ナップサック・動的計画法とかで アプレット使った図解解説ページがあったと思う。 C言語の質問というよりアルゴリズム全般、数学の方が分野としては近いと思う。
858 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 22:39:47 ] mainクソワロタwwwwwwwwwwwwwwww
859 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 01:21:59 ] >>854 >/*これ↑のどこが悪いのか教えてください*/ 降水確率が40%でも傘を持たせない根性。
860 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 07:03:52 ] グレゴリウス暦の定義を利用して入力された日は何曜日か計算するにはどうしたらいいでしょうか?
861 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 07:28:06 ] >>860 つ[time.h]
862 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 07:31:21 ] >>860 ツェラーの公式
863 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 08:29:24 ] >>860 適当な起算日からの日数を計算して7で割ったあまりを得よ。
864 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 16:44:51 ] typedef struct{ int data[100]; } test; int func(const test *x); int main{ test data; ... //省略 for(i=0; i<10000; ++i){ int temp; temp = ...; //省略。dataの要素を使ったなんかやたら複雑な計算 func(&data); printf("%d", temp); } return 0; } ちゃんとしたコンパイラなら、 funcの引数がconstポインタだからループ中でdataの値は変更されない、と解釈して 毎回やたら複雑な計算をするようなことはしないように最適化してくれますよね?
865 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 16:48:20 ] ちゃんとしたコンパイラがあればね。
866 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 16:57:04 ] ないんですか? たとえばVCとかgccではどうですか。
867 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 17:03:13 ] 自分で確かめろ
868 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 17:18:47 ] いやgccもVCも持っていなくて…… アセンブラも読めないし
869 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 17:21:57 ] なら入手して確かめればいいじゃん。
870 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 17:22:36 ] constなんかキャストすればいくらでも外せるからな・・・最適化してしまうわけにはいかんような気がする
871 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 17:42:48 ] >>864 そんな保証はどこにも無いから素直にループの外に出しておけ。 自分の為だけなら好きにすりゃいいけど、他人が読むなら言いようの無い不安感 (このコードを書いた奴はまともな人間知性を持っているのか・・・他にも問題ありそうだな・・・) を煽るだけだからやめておけ。
872 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 17:47:40 ] ループの中で毎回計算しないものを、ループに入れる神経がわからない。
873 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 17:59:29 ] >(このコードを書いた奴はまともな人間知性を持っているのか・・・他にも問題ありそうだな・・・) あるあるw
874 名前:864 mailto:sage [2008/01/16(水) 20:11:05 ] 要するに最適化してくれないということですね? ありがとうございます。 それと、「const*って最適化に使われているのかな」という疑問が唐突に湧いてきたので質問したものでして、 別にこのコードを実際に使うわけでもないのでいろいろとご安心ください。
875 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 20:16:37 ] 一度計算した結果はまた同じになることが保証されてるのは関数型言語だけだからな。 Cは最悪裏でサブスレッドがなんかやってるかもしれないし最適化には限界がある。
876 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 20:25:22 ] >>874 const*自体は最適化のヒントに使われているよ。 ただ、>864のケースでは使ってないと思うけど。
877 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 20:43:46 ] >>864 その最適化はまともなのか?
878 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 20:48:22 ] txtファイルの中にある100を探し出してカウントするプログラムを書かないといけないのですが 100を見つけるたびに一つカウントしていくプログラムを組む場合どのような事をすればいいのでしょうか
879 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 20:50:14 ] char *sの中から100を検索するコードを書け それを一行に複数あっても見つかるように拡張しろ それを複数行に対応させろ いじょ
880 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 23:57:56 ] 十分に大きな配列を用意 txtファイルを読み込む strstrでNULLがでるまで検索 検索した回数を数えればおk
881 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 02:20:28 ] ありがとうございます やってみます
882 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 04:31:11 ] でかい配列なんてイヤだっていうならこんな方法もある。 char buf[4] = {0}; int ch, cnt = 0; while((ch=fgetc(fp)) { buf[0] = buf[1]; buf[1] = buf[2]; buf[2] = ch; if(atoi(buf)==100) cnt++; }
883 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 04:31:54 ] while((ch=fgetc(fp))!=EOF)だった。
884 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 06:32:40 ] >>882 っ 1000
885 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 06:52:16 ] >>884 ばーかwww
886 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 07:47:18 ] >>884 具体的に説明していただけませんか?
887 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 08:15:05 ] >>884 僕には「100」が含まれているように見えますが・・・?
888 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 08:38:06 ] buf[3]が常に'\0'であることに気付いてないのでしょう。
889 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 14:27:15 ] int filename; scanf("%d",&filename); fopen("filename.txt","w"); キーボードから任意のファイル名でファイル作りたいんだけど うまくいかないです。お願いします。
890 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 14:28:41 ] char filename[32]; scanf("%s", filename); fopen(filename, "w");
891 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 14:31:00 ] >>890 どうもです intじゃダメか…
892 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 16:44:02 ] なぜintでいけると思ったんだよw