おまいら!今日からC言語を学んでいくぞー!パート2
■ このスレッドは過去ログ倉庫に格納されています
0001ポポ巣 ◆Qgm8RFT0/.
2005/10/07(金) 07:23:58あたいのスペックは
26歳フリーター、パソコン歴インターネット歴は6年
しかしそれ以外の事は何もできにゃーい…
というわけで今日から参考書を買ってがんばります!
今まさに私みたいに、これからCを勉強するぞって人いたら
よろしくね!!!
前スレが一杯になりそうなので新しく作りました☆
今日でC言語歴約2週間です^^;
簡単な文字の表示はできるようになったんですが
進むペースは亀さん並に遅いので、ゆっくり見守ってね(><。)
もっと容量のいい頭がほしいー(><。)
0002デフォルトの名無しさん
2005/10/07(金) 07:32:25前スレ進むの早!!
0003デフォルトの名無しさん
2005/10/07(金) 08:41:060004デフォルトの名無しさん
2005/10/07(金) 09:30:49「もっと要領のいい頭」の誤変換か、「もっと容量の大きい頭」の書き間違いのどちらなんだろう。
#いずれにしろ、要領が悪いか、脳味噌が足りないという自覚はあるわけだな。
0005デフォルトの名無しさん
2005/10/07(金) 11:14:52http://gamdev.org/w/?%5B%5B%A4%AA%A4%DE%A4%A4%A4%E9%A1%AA%BA%A3%C6%FC%A4%AB%A4%E9C%B8%C0%B8%EC%A4%F2%B3%D8%A4%F3%A4%C7%A4%A4%A4%AF%A4%BE%A1%BC%A1%AA%5D%5D
0006デフォルトの名無しさん
2005/10/07(金) 11:18:39□■JAVAプログラマーを育てるスレ■□
http://pc8.2ch.net/test/read.cgi/tech/1081149073/
java講座を一緒に受けよう!
http://pc8.2ch.net/test/read.cgi/tech/1110180044/
■類似スレ(何でもあり)
またプログラムやろうぜソニー
http://ex11.2ch.net/test/read.cgi/news4vip/1127838884/
【初心者】課題をクリアしていくスレ【講習会】
http://pc8.2ch.net/test/read.cgi/gamedev/1086858349/
【目標ない奴】おまいらに課題を与える。【集まれ】
http://pc8.2ch.net/test/read.cgi/gamedev/1026148930/
0007デフォルトの名無しさん
2005/10/07(金) 13:31:09おまいら!今日からC言語を学んでいくぞー!
http://pc8.2ch.net/test/read.cgi/tech/1127501670/
0008デフォルトの名無しさん
2005/10/07(金) 13:42:240009デフォルトの名無しさん
2005/10/07(金) 13:46:07http://www.google.co.jp に接続してトップページをGET、ファイルに書き出すプログラム。
0010デフォルトの名無しさん
2005/10/07(金) 13:49:500011デフォルトの名無しさん
2005/10/07(金) 15:10:41なかなか難しいぽ
0012変な人
2005/10/07(金) 15:23:090013デフォルトの名無しさん
2005/10/07(金) 16:37:13コテハン、私的なスレは自己紹介板・最悪板・夢・独り言板・おいらロビー・なんでもあり板・
PINKのなんでもあり板以外では、原則として全て削除または移動対象です。
スレ立ての内容はくだらない議論にならないような内容にしてください
0014デフォルトの名無しさん
2005/10/07(金) 16:50:24C言語のスレ、この板だけで何個あるんだよ。
0015デフォルトの名無しさん
2005/10/07(金) 17:51:010016デフォルトの名無しさん
2005/10/07(金) 18:19:020017デフォルトの名無しさん
2005/10/07(金) 18:32:08最低限>>1-10ぐらい眺めて言えよ
ツラだけ大きな糞運営さんw
0018デフォルトの名無しさん
2005/10/07(金) 18:39:100019デフォルトの名無しさん
2005/10/07(金) 18:41:420021デフォルトの名無しさん
2005/10/07(金) 18:50:25>>9だとエラーが出る
アホなので何がなんだかもうわからんorz
0022デフォルトの名無しさん
2005/10/07(金) 18:51:39UDPでGoogleのHTMLをダウンロードしたらいいのか?
0023デフォルトの名無しさん
2005/10/07(金) 19:02:46http://hs.or.tp/php/uploader/up/code046.c
「猫でもわかる」のをパクって作りました
2ちゃんTOPだと成功するけど、なぜかグーグルのサイトだと何故かダメぽ(´・ω・`)
0024デフォルトの名無しさん
2005/10/07(金) 19:10:14http://www.nakka.com/lib/
0025デフォルトの名無しさん
2005/10/07(金) 19:19:51これから読んでみます
0027デフォルトの名無しさん
2005/10/07(金) 19:32:26これだけだとダメなのかな・・・
0028デフォルトの名無しさん
2005/10/07(金) 19:33:53#pragma comment(lib, "WinInet.lib")
#include <windows.h>
#include <wininet.h>
#include <stdio.h>
#include <string.h>
int main()
{
const char *filename="google.html";
HINTERNET hInet, hUrl;
char buf[32000];
DWORD len;
FILE *fp;
hInet=InternetOpen("google get program", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
hUrl=InternetOpenUrl(hInet, "http://www.google.co.jp/", NULL, 0,0,0);
fp=fopen(filename, "w");
while (true)
{
InternetReadFile(hUrl, buf, sizeof buf-1, &len);
/*
0029デフォルトの名無しさん
2005/10/07(金) 19:34:23if (len==0)
break;
buf[len]='\0';
fprintf(fp, "%s", buf);
}
InternetCloseHandle(hUrl);
InternetCloseHandle(hInet);
fclose(fp);
return 0;
}
//EOF
0030デフォルトの名無しさん
2005/10/07(金) 19:37:35GET http://www.google.co.jp/ HTTP/1.0
なら帰ってくるよ
0031デフォルトの名無しさん
2005/10/07(金) 19:46:590032デフォルトの名無しさん
2005/10/07(金) 19:55:10コードが悪いのかorz
もう諦めた
>>30
ありがとうございました
0033デフォルトの名無しさん
2005/10/07(金) 19:56:540034デフォルトの名無しさん
2005/10/07(金) 20:12:540035デフォルトの名無しさん
2005/10/07(金) 20:37:350036デフォルトの名無しさん
2005/10/07(金) 20:47:44コードを晒してくれないと悪い部分も指摘できない罠
0037デフォルトの名無しさん
2005/10/07(金) 20:48:100038デフォルトの名無しさん
2005/10/07(金) 21:05:03#pragma comment (lib, "WSock32.lib")
#define WIN32_LEAN_AND_MEAN
#define MAJORVERSION 2
#define MINORVERSION 2
#define SERVER "www.google.co.jp"
#define PORT 80
#define FILENAME "google.txt"
#include <windows.h>
#include <winsock2.h>
#include <stdio.h>
int main()
{
WSADATA wsaData;
SOCKET Socket;
LPHOSTENT lpHostEnt;
SOCKADDR_IN SockAddR_In;
FILE *fp;
char RecvStr[255];
char SendStr[255];
int err;
err=WSAStartup(MAKEWORD(MAJORVERSION, MINORVERSION), &wsaData);
if (err != 0)
{
printf("エラーコード %d\n", err);
/*
0039デフォルトの名無しさん
2005/10/07(金) 21:05:41switch (err)
{
case WSASYSNOTREADY:
printf("ネットワークサブシステムがネットワークへの接続を準備できていない\n");
break;
case WSAVERNOTSUPPORTED:
printf("要求されたwinsockのバージョンがサポートされていない\n");
break;
case WSAEINPROGRESS:
printf("ブロッキング操作の実行中であるか、またはサービスプロバイダがコールバック関数を処理している\n");
break;
case WSAEPROCLIM:
printf("winsockが処理できる最大プロセス数に達した\n");
break;
case WSAEFAULT:
printf("第二引数であるlpWSAData は有効なポインタではない\n");
break;
default:
printf("原因不明\n");
}
return 1;
}
else
{
/*
0040デフォルトの名無しさん
2005/10/07(金) 21:06:22printf("正常に初期化できました\n");
}
Socket=socket(PF_INET, SOCK_STREAM, 0);
if (Socket == INVALID_SOCKET)
{
printf("ソケットが開けませんでした\n");
return 2;
}
lpHostEnt=gethostbyname(SERVER);
if (lpHostEnt == NULL)
{
printf("サーバーが見つかりませんでした\n");
return 3;
}
memset( &SockAddR_In, 0, sizeof(SockAddR_In) );
SockAddR_In.sin_family = AF_INET;
SockAddR_In.sin_port = htons(PORT);
SockAddR_In.sin_addr = *((LPIN_ADDR)*lpHostEnt->h_addr_list);
if ( connect(Socket, (PSOCKADDR)&SockAddR_In, sizeof(SockAddR_In)) !=0)
{
printf("ソケット接続失敗しました\n");
/*
0041デフォルトの名無しさん
2005/10/07(金) 21:07:15return 4;
}
sprintf(SendStr, "GET %s HTTP/1.0\n\n", SERVER);
printf("%s を送信します\n", SendStr);
send(Socket, SendStr, strlen(SendStr), 0);
fp=fopen(FILENAME, "w");
printf("受信中");
while (1)
{
printf(".");
err=recv(Socket, RecvStr, sizeof(RecvStr)-1, 0);
printf("%d",err);
fprintf(fp, "%s", RecvStr);
if (err == 0)
{
break;
}
}
fclose(fp);
printf("\n終了処理開始\n");
if ( shutdown(Socket, SD_BOTH) != 0)
{
printf("シャットダウンに失敗しました\n");
return 5;
}
/*
0042デフォルトの名無しさん
2005/10/07(金) 21:07:46closesocket(Socket);
err=WSACleanup();
if (err == SOCKET_ERROR)
{
printf("リソース解放失敗\n");
}
else
{
printf("リソース解放成功\n");
}
return 0;
}
//EOF
0043デフォルトの名無しさん
2005/10/07(金) 21:09:48GETで指定するのは相対パスだから、
www.google.co.jp:80に接続したら
GET / HTTP/1.0
でルートを取得できる
004438
2005/10/07(金) 21:52:321.保存したファイル(google.txt)が文字化けして読めません
秀丸でエンコードにUTF-8やSJISを指定して開いても
フフフフフフフフという文字があちこちに表示されました
どうすれば文字化けしないファイルを作れますか?
2.「GET / HTTP/1.0」を指定すると「HTTP/1.0 302 Found」になりました
何が起きているのでしょうか?
「ページが一時的に別の場所に用意されていることを意味する」とのことですが
このエラーが出る心当たりがありません
変わりに「/Top/World/Japanese/」としてみたところ正常にダウンロードできました
よろしくお願いします
0045デフォルトの名無しさん
2005/10/07(金) 21:55:55フフフフでぐぐれ。
0046デフォルトの名無しさん
2005/10/07(金) 22:12:17その時のログ取ってそっくり真似ればいいんだが
Cとは関係ない話だし
0047デフォルトの名無しさん
2005/10/07(金) 22:19:11http://hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi?print+200506/05060093.txt
こちらのサイトを見つけました
文字列の最後に'\0'が抜けていたのが原因でした
ありがとうございます
引き続き2.のほうお願いします
0048デフォルトの名無しさん
2005/10/07(金) 22:25:030049デフォルトの名無しさん
2005/10/07(金) 22:25:39IEたちが何やってるか、パケットキャプチャ使ったり自作Proxyもどきを作ってみ
0050デフォルトの名無しさん
2005/10/07(金) 22:33:14http://gamdev.org/w/?%5B%5B%A4%AA%A4%DE%A4%A4%A4%E9%A1%AA%BA%A3%C6%FC%A4%AB%A4%E9C%B8%C0%B8%EC%A4%F2%B3%D8%A4%F3%A4%C7%A4%A4%A4%AF%A4%BE%A1%BC%A1%AA%A5%D1%A1%BC%A5%C82%5D%5D
問題の数が多いのでスレごとに別ページにしました
0051デフォルトの名無しさん
2005/10/07(金) 22:35:54HTTP1.1にして、Host、User-Agent、Connectionを送信してやるといいと思われ。
005238
2005/10/07(金) 23:46:24これで302が出なくなりました
HTTP1.1だと切断されなくなったのでとりあえず避けました
0053デフォルトの名無しさん
2005/10/07(金) 23:56:43symbol in file
sqrt review6.o
ld: fatal: Symbol referencing errors. No output written to review6.exe
コンパイル通すとこぅなるんですけど原因何かわかありますか??
0054デフォルトの名無しさん
2005/10/08(土) 00:01:22もうちっとネットワーク自体について勉強しないとダメぽorz
0055デフォルトの名無しさん
2005/10/08(土) 00:16:07念のため、規格で決まっている改行コードは\r\nだから
Apacheのように多少融通が利くサーバーでは一応動くけれど
"GET / HTTP/1.0\r\nHost: www.google.co.jp\r\n\r\n"
にした方がいいと思うYO
0056デフォルトの名無しさん
2005/10/08(土) 00:23:06自分のPCにでもサーバ立ててやれ
非常識にもほどがある
0057デフォルトの名無しさん
2005/10/08(土) 00:28:170058デフォルトの名無しさん
2005/10/08(土) 00:35:400059デフォルトの名無しさん
2005/10/08(土) 01:12:55アドバイスありがとございます
0060デフォルトの名無しさん
2005/10/08(土) 03:34:42[問題]
実行するプログラム自身の名前を表示する
例)Winならコマンドプロンプトで、作ったプログラム apl.exe を実行すると
私の名前は apl.exe です。
と表示する。次に ren apl.exe apple.exe をして、apple.exe を実行すると
私の名前は apple.exe です。
と表示する。他に適当な名前に ren してもそれが表示されること。
(unix系なら ren は mv で。あとプログラムの名前も〜.exeとはしないな...)
0061デフォルトの名無しさん
2005/10/08(土) 03:56:56その問題は良くない。
0062デフォルトの名無しさん
2005/10/08(土) 03:59:11#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
printf("私の名前は %s です。", strrchr(argv[0], '\\')+1);
return 0;
}
0063デフォルトの名無しさん
2005/10/08(土) 04:03:510064デフォルトの名無しさん
2005/10/08(土) 04:11:57出題者の模範解答を見てみたいものだ
0065デフォルトの名無しさん
2005/10/08(土) 04:27:22wikiの解答ページにまとめてみるってのは需要あるかな?
0066デフォルトの名無しさん
2005/10/08(土) 04:28:49神キタ━━━━━━(゚∀゚)━━━━━━ !!
0067デフォルトの名無しさん
2005/10/08(土) 04:31:17そういう事は、思い立ったら速やかに黙ってやれ。
ぶっちゃけおまいの自己満足の世界なんだから。
0068デフォルトの名無しさん
2005/10/08(土) 04:39:21だから仕様にそった回答は不可能
で、メジャーなコンパイラや環境に対応すればほぼ正解としてみる
軽くググった感じじゃファイル名かフルパスのどちらかしかない←これが大前提
そこでargv[0]末尾からファイル名らしき部分を抜き出してみる
これでほぼ正解じゃね?どうよ
0069デフォルトの名無しさん
2005/10/08(土) 04:44:070070デフォルトの名無しさん
2005/10/08(土) 04:48:37ファイル名表示ソフトつーのを作ってみるわ
もちろんWindowsネイティブな。少しまちなー
0071デフォルトの名無しさん
2005/10/08(土) 04:51:52ソース出しても碌なこと言わないな
0072デフォルトの名無しさん
2005/10/08(土) 04:52:40MacOS9のも頼むな
0073デフォルトの名無しさん
2005/10/08(土) 08:59:19CP/Mに対応しろと言われるより嫌
0074デフォルトの名無しさん
2005/10/08(土) 09:15:14win32apiは駄目?
そうですか。
0075デフォルトの名無しさん
2005/10/08(土) 09:24:41007674
2005/10/08(土) 09:35:02#include <stdio.h>
#include <windows.h>
int main(){
char name[MAX_PATH]={0};
GetModuleFileName(GetModuleHandle(0),name,MAX_PATH);
printf("私の名前は%sです",strrchr(name,'\\')+1);
return 0;
}
はいはい次次
0077デフォルトの名無しさん
2005/10/08(土) 09:49:35GetModuleFileName(0, で平気のはず。
007874
2005/10/08(土) 09:55:170079デフォルトの名無しさん
2005/10/08(土) 12:45:31ハゲド
0080デフォルトの名無しさん
2005/10/08(土) 13:14:140081デフォルトの名無しさん
2005/10/08(土) 13:14:58>もちろんWindowsネイティブな。
ハゲワロス
0082デフォルトの名無しさん
2005/10/08(土) 13:15:13cygwin入れてgcc使ってる環境では単純に下のでできた。
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
printf("私の名前は %s です。\n", argv[0]);
return 0;
}
0083デフォルトの名無しさん
2005/10/08(土) 14:47:430084デフォルトの名無しさん
2005/10/08(土) 14:58:12仕様に沿った解答
#include <stdio.h>
int main(int argc, char ** argv)
{
if (argc && argv[0][0] != '\0') {
printf("私の名前は %s です。\n", argv[0]);
} else {
printf("無理\n");
}
return 0;
}
0085デフォルトの名無しさん
2005/10/08(土) 16:48:41#include <stdio.h>
int main()
{
printf("int %d\n", sizeof(int));
printf("short %d\n", sizeof(short));
printf("long %d\n", sizeof(long));
printf("float %d\n", sizeof(float));
printf("double %d\n", sizeof(double));
printf("wchar_t %d\n", sizeof(wchar_t));
printf("char %d\n", sizeof(char));
return 0;
}
本とググって見つけたのはこれで全部
これ以上の型は知らん
0086デフォルトの名無しさん
2005/10/08(土) 16:49:120087デフォルトの名無しさん
2005/10/08(土) 16:59:140088デフォルトの名無しさん
2005/10/08(土) 17:00:49printf("typedef %d\n", sizeof(typedef));
だめだったぞ
0089デフォルトの名無しさん
2005/10/08(土) 17:03:16配列とかポインタとか構造体とか共用体とか列挙体とか long longとかlong doubleとか
ついでに言うとsizeof演算子の返す型はsize_t型だからいきなり%dとかやると未定義動作
%zu(C99)と書くかキャストしる
0090デフォルトの名無しさん
2005/10/08(土) 17:11:57つ<limits.h><float.h>
0091デフォルトの名無しさん
2005/10/08(土) 17:13:15載ってなかったぞ
何か違うの?
0092デフォルトの名無しさん
2005/10/08(土) 17:23:012の補数以外完全無視でcharが8bit決め打ち。しかも整数型限定という駄目駄目っぷりで良ければ
#include<stdio.h>
#define min(type) ((long)((type)-1<0 ?(-1l<<(sizeof(type)*8-1)):0))
#define max(type) ((unsigned long)((-1ul)>>(32-sizeof(type)*8+((type)-1<0))))
#define X(type) #type,(int)sizeof(type),min(type),max(type)
#define print_type(type) printf("%14s %4d %24ld %24lu \n", X(type));
#define su_print_type(type) print_type(type);print_type(signed type);print_type(unsigned type)
int main()
{
printf("%14s %4s %24s %24s \n","type","size","min","max");
su_print_type(int);
su_print_type(short);
su_print_type(long);
print_type(wchar_t);
su_print_type(char);
return 0;
}
0093デフォルトの名無しさん
2005/10/08(土) 17:35:40最近スレのレベル高すぎ
0094デフォルトの名無しさん
2005/10/08(土) 17:54:48邪魔だから黙ってろ
0095デフォルトの名無しさん
2005/10/08(土) 18:09:070096デフォルトの名無しさん
2005/10/08(土) 18:12:44横からだが俺も>>93に同意。
もう「今日から」とかいうレベルじゃない(初代スレ立ったの24日だし
0097デフォルトの名無しさん
2005/10/08(土) 18:14:02分かる所から手ぇつければ良いんだよ
無理に理解しようとすると挫折するから
0098デフォルトの名無しさん
2005/10/08(土) 18:16:360099デフォルトの名無しさん
2005/10/08(土) 18:18:08簡単つったらhello world表示
0100デフォルトの名無しさん
2005/10/08(土) 18:20:370101デフォルトの名無しさん
2005/10/08(土) 18:24:17http://gamdev.org/w/?%5B%5B%A4%AA%A4%DE%A4%A4%A4%E9%A1%AA%BA%A3%C6%FC%A4%AB%A4%E9C%B8%C0%B8%EC%A4%F2%B3%D8%A4%F3%A4%C7%A4%A4%A4%AF%A4%BE%A1%BC%A1%AA%5D%5D
wiki - おまいら!今日からC言語を学んでいくぞー!パート2
http://gamdev.org/w/?%5B%5B%A4%AA%A4%DE%A4%A4%A4%E9%A1%AA%BA%A3%C6%FC%A4%AB%A4%E9C%B8%C0%B8%EC%A4%F2%B3%D8%A4%F3%A4%C7%A4%A4%A4%AF%A4%BE%A1%BC%A1%AA%A5%D1%A1%BC%A5%C82%5D%5D
■ このスレッドは過去ログ倉庫に格納されています