目次: C言語とlibc
簡単そうに見えてハマりました。固定バッファは溢れたりして厄介なので、デリミタまでをstringクラスに代入してくれる関数を使おうと思いました。C++にはその動きをするstd::getline関数がありますが、なぜかEnterを二回押さないと動かないという変な関数で使えません。仕方なく自作することに。
単純にistream::get(char *, int, int)でバッファ長かデリミタまで取ってstringに連結し、デリミタはistream::ignore(1)で消し去れば簡単です。と思ったらgetの動きがイカレていて、何も入力せずにEnterを押すとエラーになります。続くistream::peek()は全部EOFを返しますが、ファイル末端ではないのでistream::eof()は偽を返して、無限ループに陥ります。ええー?
結局istream::get(char *, int, int)にあたる部分もistream::get()を使って自作しなければならず、1行取ってくるだけのプログラムがかなり肥大化しました。お願いだから開発系くらいちゃんと作ってくれよ、MSさん頼むー。
作ったコードはこんな感じです。
//理想(g++だと動く)
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
string str;
while (!cin.eof()){
//1行取得
std::getline(cin, str, '\n');
//1行出力
cout << "out: " << str << endl;
}
return 0;
}
//現実(こちらも当然g++ で動く)
#include <iostream>
#include <string>
using namespace std;
istream &getBlock(istream &s_in, char *pbuf, int size, char delim);
istream &getLine(istream &s_in, string &str_buf, char delim);
int main(int argc, char *argv[])
{
string str;
while (!cin.eof()){
//1行取得
getLine(cin, str, '\n');
//1行出力
cout << "out: " << str << endl;
}
return 0;
}
//終端、区切り文字またはバッファサイズ - 1まで入力を取り出す
istream &getBlock(istream &s_in, char *pbuf, int size, char delim)
{
int ch, pt;
for (pt = 0; !s_in.eof(); pt++) {
ch = s_in.get();
//区切り文字検出
if (ch == delim || pt >= size - 1) {
s_in.putback((char)ch);
break;
}
pbuf[pt] = (char)ch;
}
//nul文字付加
pbuf[pt] = '\0';
return s_in;
}
//改行までstringクラス変数に入力を取り出す
istream &getLine(istream &s_in, string &str_buf, char delim)
{
char buf[BUFSIZE];
//バッファ初期化
str_buf = "";
while (!s_in.eof()) {
//バッファの限界か、区切り文字まで読み込む
getBlock(s_in, (char *)buf, sizeof(buf), delim);
//連結
str_buf += buf;
//区切り文字にて読み込みが止まった場合
if (s_in.peek() == delim) {
s_in.ignore(1);
break;
}
}
return s_in;
}
この記事にコメントする
光ケーブルの件で大家に連絡をしたところ、全然わかってなくて意味不明なことを言いまくってくるし、美観がどうのこうの言ってるので駄目そうな雰囲気。とりあえず工事会社に説得してもらう予定ですが、おそらく駄目でしょう。光よさようなら〜。
この記事にコメントする
昼休みに高級言語ソフトウェアアーキテクチャ研究室(板野研)に行きました。新城先生の説明では世界OSやカーネルうんぬんを説明していました。世界OSか、便利で堅牢そうだけど重そう…。佐藤先生は何が専門かよくわからないですが、途中で「データベース専門でして…」と言ってたので、きっとそうなんでしょう。
放課後にオペレーティングシステム・システムソフトウェア研究室(加藤研)に行きました。第一志望に限りなく近そうですが、時間が無くて面談まで残れませんでした。また後日行ってみようかな。
以前誰かに言われたのですが、ミドルウェアやアーキテクチャって斜陽分野なんですかね?
アパートに変なハガキがきました。再度のご案内とあって内容はおおむね、記念品の案内状を送ったが連絡が取れない、下記サービスセンターまで至急連絡をください、でした。ていうか案内状もらった覚え無いデス。直でポストに入れたかと思いましたが、紫外線で確認したら一応郵便局を通しているようです。
ぱっと見、ハガキに自分の名前が書いてあってビビりましたが、落ち着いて考えると住所がわかるなら名前は楽勝ですね。安アパートの郵便箱は開け放題ですから、光熱費の請求書からいくらでも調べられます。
そういえばハガキの隅に書いてある「シーエムアイグループ」でググったら、悪徳商法の会社らしいこと発覚。公衆電話からかけてみたくなりましたが、変なやつが押し掛けて来ても嫌なので、やめておきました。
この記事にコメントする
研究室見学第二弾、インタラクティブアーキテクチャ研究室(山口研)です。幅広く研究していて、基本的になんでもできそうな研究室で、比較的新しくできた研究室とのことです。突拍子も無い分野にすると指導ができません、もちろん支援はできる限りしますが…と言っていました。まあ、そりゃそうだ。
山口先生はハード寄りでFPGAで色々やるみたいです。前田先生はソフト寄りでJavaのリアルタイムGCを作るとか、言語処理系を見直したいような話をしていました。研究室にデザインパターンの本があって、そういえば持ってないので欲しいなーと思った。今度買いに行こうかな。
この記事にコメントする
これからしばらくは研究室巡りで私が面白そうと思ったものを書いていきます。その他や詳細は研究室を訪ねてください。
研究室見学第一弾は非数値処理アルゴリズム研究室(西原、福井研)です。仮想都市シミュレーションはシムシティーと呼んだら怒られそうですが、見た目はそんな感じでした。何年も前の都市のデータから、現在の都市の姿を再現するのが目標らしいです。それができたらすごいね、未来予測ができてしまいます。
コンピュータ上でマネキンを作るのも面白そうでした。ゆくゆくはモーションキャプチャーを使わずに人の動きを再現したいそうです。これもできたらすごいですね。ごく自然な表現まで到達したら映画で使えるよなあ、平均的な動きじゃなくてパラメータを変化させて俳優に仕立てたりできるんじゃないかな。個人的にはいつか実現すると思いますが、壮大な夢物語でしょうか?
この記事にコメントする
徹夜明けで暇だったので、ラグナロクオンラインをやってました。
このゲーム特有の現象として異常にラグ(遅延)が大きく、気づいたら死んでることが良くある。オンラインゲームは会員が集まって、投資分を十分取り返したら後は放置が多いみたいですが、それにしても他と比べてガンホー社の管理はあんまりだという話を聞きます。こんなことしてると信頼を失って、その後の新作ゲームに影響するんじゃないか?
あ、間違えた。既に信頼なんて無いんだった。ラグナロクが終わる時、ガンホーも終わるだろう。南無南無。
この記事にコメントする
園芸での作業後、高橋(城)邸で飲み会がありました。みんなで彼の家にある面白いものを見ているうちに夜がふけて朝になるという、あまり飲み会らしくない流れが多いですね。
今回も結局だらだらしているうちに朝になったので、松屋へ朝飯を食いに向かいました。食事中、このまま寝るのは勿体無い、誰かを呼んで飲み会を続行しよう、と結城さんが何人かに声をかけてみたのですがダメだったので解散してしまいました。
この記事にコメントする
研究室配属説明会がありました。情報学類の8割は大学院に進学しているそうです。学類長のあいさつで、工学系は院を前提とした配分で授業をやってるし学部卒だとしんどいよね、みたいな事を暗に言っていました。工学系にとって大学は院への階段なの?と思いつつも、専門化しすぎてて4年間じゃろくに習得できないんだろうとも思った。
将来に関わる大事な選択なんで、これから一ヶ月じっくり見て回ることにします。
この記事にコメントする
また何かゲームを作ろうと、プログラミングを再開しました。今までの失敗から(自分が)一気に開発すると、構造が頭に残り速く開発できる分細かい部分は雑になりがちでした。今回は新しいアプローチとして「一気に作らない」を目標にしようと思います。
開発の時間が空けば空くほど忘れてしまい、再開したとき思い出す時間が必要となります。手間はかかりますが、そこは個人の趣味。急ぐ必要もないし、時間が経ってから見てもわかる書き方を学ぶにはちょうど良いでしょう。
以上、他人には関係ないことですが、公共の場に宣言することで途中で投げ出す可能性も多少は減るかもしれない…なんて効果も狙ってみました。
この記事にコメントする
またまたACCSnet絶不調です。モデムは一見正常なのにレスポンスが半端なく遅く、しまいにはwww.accs.or.jpへのpingすら帰ってこなくなる始末。良かれと思ってルータ再起動をしたものの、DHCPサーバからの応答が返ってこないためネット完全不通、と裏目に出ました。
ACCSnetは速度、自由度があって良いと思いますが、我が家では全然ダメ。ACCSnetを使ってる友達は正常に通信できても、ウチだけ落ちていることもしばしば。こんな有様でサーバーサービスを提供とは…文句の一つも言いたくなるんじゃないでしょうか。そりゃ私でもCATV網が不安定なくらいは知ってるけども、家の環境はあまりにも不安定でいらつくのですよ。光よ、早よ来いや〜。
この記事にコメントする
サークルネットワークという文サの機関紙が完成、A3 3枚12ページ構成、でも表紙と白紙部分があるため正味8ページ。50部しか刷らなかったため、その辺に配布したら一瞬でなくなりました。
帰り道、西大通りにて隣にいたレガシィB4と加速を比べて、やっぱ速いよなーと思いながら並走したり、これまた横に居たカプチーノちっくな爆音の軽うるせーとか思ってたら、後ろからぶっ飛ばしてきたギャランに全員抜かれました。見れば枯…紅葉マーク付きじゃないですか。こ、怖ぇ…。
ミドルクラスセダンはミニバンみたいに重くないしエンジンはけっこう強力なやつ積んでて、静かで速いと思います。私の場合、車は形が命なんで、速そう(に見える)なら実際速くなくても良いや。そもそもそんなスピード出さないです。
この記事にコメントする
午前中は光工事の事前調査でした。光ファイバは電話線と並走させるのが普通ですが、電話線が埋め込み式だかで管には通せないと言われました。屋根の雨どいならば目立ちませんが3階建の場合、工事する車が屋根まで届かないかもしれない…な、なんだってー!?一応雨どいを通してみるが、だめなら電柱から部屋へ、一軒家で使う引き方を使うことでまとまりました。なるほど、東電通ナイスだ。
3学期の体育はこの世でもっとも不毛だと感じるマラソンです。この時点でもう鬱。今日は手始めに15分ほど走らされさらに嫌いになりました。これから際限なく嫌いになる予定。
この記事にコメントする
都合3度目となる課外活動リーダー研修会への参加です。ただし今回は主催者側でして、いっそう疲れました。結果は成功したと言えましょう。三系のみなみなさまお疲れさんです…。今回の研修会、文化系からの参加者が少ないように思います。当日突然「やっぱり行けません」というドタキャンもいて、確実に学生団体への興味は薄れていると感じました。
入学した時からサークルにBOXが有って当たり前な今の学生には、BOXは天から降ってきたものじゃないと説明して頭ではわかっていたとしても、文サは指示や義務を課してくるウザい団体としか思えないのでしょう。少なくとも文化系はその傾向を感じます。リーダー研修会に参加を呼びかけて運営委員会の重要性を説いても、通じないのも仕方ない。学生団体の一つの転換期か、はたまた打開策があるのか?来期の運営委員も一筋縄では行かなさそうです。
この記事にコメントする
| < | 2003 | > | ||||
| << | < | 12 | > | >> | ||
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
| - | 1 | 2 | 3 | 4 | 5 | 6 |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 | - | - | - |
wiki
Linux JM
Java API
2002年
2003年
2004年
2005年
2006年
2007年
2008年
2009年
2010年
2011年
2012年
2013年
2014年
2015年
2016年
2017年
2018年
2019年
2020年
2021年
2022年
2023年
2024年
2025年
過去日記について
アクセス統計
サーバ一覧
サイトの情報合計:
本日: