コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2003年12月19日 >>> 2003年12月6日
link もっと後

2003年12月19日

たかが標準入力から1行読み込む処理、されどハマりました。

固定バッファは溢れるたりして厄介なので、デリミタまでを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行取ってくるだけのプログラムがかなり肥大化しました。これじゃ何のためのC++だかわかりませんよ。お願いだから開発系くらいちゃんと作ってくれよ、M$さん頼むよー(´Д`;)

作ったコードはこんな感じです。あまり洗練されたコードではありませんが、読みやすさ優先主義ってことで許して。

理想

//理想(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;
}
編集者:すずき(2014/09/10 11:27)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2003年12月18日

光ケーブルの件で大家に連絡をしたところ、全然わかってなくて意味不明なことを言いまくってくるし、美観がどうのこうの言ってるので駄目そうな雰囲気。とりあえず工事会社に説得してもらう予定ですが、おそらく駄目でしょう。光よさようなら〜。

編集者:すずき(2006/11/19 16:16)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2003年12月17日

昼休みに高級言語ソフトウェアアーキテクチャ研究室(板野研)に行きました。新城先生の説明では世界OSやカーネルうんぬんを説明していました。世界OSか、便利で堅牢そうだけど重そう…。佐藤先生は何が専門かよくわからないですが、途中で「データベース専門でして…」と言ってたので、きっとそうなんでしょう。
放課後にオペレーティングシステム・システムソフトウェア研究室(加藤研)に行きました。第一志望に限りなく近そうですが、時間が無くて面談まで残れませんでした。また後日行ってみようかな。
以前誰かに言われたのですが、ミドルウェアやアーキテクチャって斜陽分野なんですかね?

アパートに変なハガキがきました。再度のご案内とあって内容はおおむね、記念品の案内状を送ったが連絡が取れない、下記サービスセンターまで至急連絡をください、でした。ていうか案内状もらった覚え無いデス。直でポストに入れたかと思いましたが、紫外線で確認したら一応郵便局を通しているようです。
ぱっと見、ハガキに自分の名前が書いてあってビビりましたが、落ち着いて考えると住所がわかるなら名前は楽勝ですね。安アパートの郵便箱は開け放題ですから、光熱費の請求書からいくらでも調べられます。
そういえばハガキの隅に書いてある「シーエムアイグループ」でググったら、悪徳商法の会社らしいこと発覚。公衆電話からかけてみたくなりましたが、変なやつが押し掛けて来ても嫌なので、やめておきました。

編集者:すずき(2006/11/19 16:16)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2003年12月16日

研究室見学第二弾、インタラクティブアーキテクチャ研究室(山口研)です。幅広く研究していて、基本的になんでもできそうな研究室で、比較的新しくできた研究室とのことです。突拍子も無い分野にすると指導ができません、もちろん支援はできる限りしますが…と言っていました。まあ、そりゃそうだ。
山口先生はハード寄りでFPGAで色々やるみたいです。前田先生はソフト寄りでJavaのリアルタイムGCを作るとか、言語処理系を見直したいような話をしていました。研究室にデザインパターンの本があって、そういえば持ってないので欲しいなーと思った。今度買いに行こうかな。

編集者:すずき(2006/11/19 16:16)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2003年12月15日

これからしばらくは研究室巡りで私が面白そうと思ったものを書いていきます。その他や詳細は研究室を訪ねてください。
研究室見学第一弾は非数値処理アルゴリズム研究室(西原、福井研)です。仮想都市シミュレーションはシムシティーと呼んだら怒られそうですが、見た目はそんな感じでした。何年も前の都市のデータから、現在の都市の姿を再現するのが目標らしいです。それができたらすごいね、未来予測ができてしまいます。
コンピュータ上でマネキンを作るのも面白そうでした。ゆくゆくはモーションキャプチャーを使わずに人の動きを再現したいそうです。これもできたらすごいですね。ごく自然な表現まで到達したら映画で使えるよなあ、平均的な動きじゃなくてパラメータを変化させて俳優に仕立てたりできるんじゃないかな。個人的にはいつか実現すると思いますが、壮大な夢物語でしょうか?

編集者:すずき(2006/11/19 16:16)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2003年12月14日

徹夜明けで暇だったので、ラグナロクオンラインをやってました。
このゲーム特有の現象として異常にラグ(遅延)が大きく、気づいたら死んでることが良くある。オンラインゲームは会員が集まって、投資分を十分取り返したら後は放置が多いみたいですが、それにしても他と比べてガンホー社の管理はあんまりだという話を聞きます。こんなことしてると信頼を失って、その後の新作ゲームに影響するんじゃないか?
あ、間違えた。既に信頼なんて無いんだった。ラグナロクが終わる時、ガンホーも終わるだろう。南無南無。

編集者:すずき(2006/11/19 16:16)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2003年12月13日

園芸での作業後、高橋(城)邸で飲み会がありました。みんなで彼の家にある面白いものを見ているうちに夜がふけて朝になるという、あまり飲み会らしくない流れが多いですね。
今回も結局だらだらしているうちに朝になったので、松屋へ朝飯を食いに向かいました。食事中、このまま寝るのは勿体無い、誰かを呼んで飲み会を続行しよう、と結城さんが何人かに声をかけてみたのですがダメだったので解散してしまいました。

編集者:すずき(2006/11/19 16:16)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2003年12月12日

研究室配属説明会がありました。情報学類の8割は大学院に進学しているそうです。学類長のあいさつで、工学系は院を前提とした配分で授業をやってるし学部卒だとしんどいよね、みたいな事を暗に言っていました。工学系にとって大学は院への階段なの?と思いつつも、専門化しすぎてて4年間じゃろくに習得できないんだろうとも思った。
将来に関わる大事な選択なんで、これから一ヶ月じっくり見て回ることにします。

編集者:すずき(2006/11/19 16:16)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2003年12月11日

また何かゲームを作ろうと、プログラミングを再開しました。今までの失敗から(自分が)一気に開発すると、構造が頭に残り速く開発できる分細かい部分は雑になりがちでした。今回は新しいアプローチとして「一気に作らない」を目標にしようと思います。
開発の時間が空けば空くほど忘れてしまい、再開したとき思い出す時間が必要となります。手間はかかりますが、そこは個人の趣味。急ぐ必要もないし、時間が経ってから見てもわかる書き方を学ぶにはちょうど良いでしょう。
以上、他人には関係ないことですが、公共の場に宣言することで途中で投げ出す可能性も多少は減るかもしれない…なんて効果も狙ってみました。

編集者:すずき(2006/11/19 16:16)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2003年12月10日

またまたACCSnet絶不調です。モデムは一見正常なのにレスポンスが半端なく遅く、しまいにはwww.accs.or.jpへのpingすら帰ってこなくなる始末。良かれと思ってルータ再起動をしたものの、DHCPサーバからの応答が返ってこないためネット完全不通、と裏目に出ました。
ACCSnetは速度、自由度があって良いと思いますが、我が家では全然ダメ。ACCSnetを使ってる友達は正常に通信できても、ウチだけ落ちていることもしばしば。こんな有様でサーバーサービスを提供とは…文句の一つも言いたくなるんじゃないでしょうか。そりゃ私でもCATV網が不安定なくらいは知ってるけども、家の環境はあまりにも不安定でいらつくのですよ。光よ、早よ来いや〜。

編集者:すずき(2006/11/19 16:16)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2003年12月9日

サークルネットワークという文サの機関紙が完成、A3 3枚12ページ構成、でも表紙と白紙部分があるため正味8ページ。50部しか刷らなかったため、その辺に配布したら一瞬でなくなりました。
帰り道、西大通りにて隣にいたレガシィB4と加速を比べて、やっぱ速いよなーと思いながら並走したり、これまた横に居たカプチーノちっくな爆音の軽うるせーとか思ってたら、後ろからぶっ飛ばしてきたギャランに全員抜かれました。見れば枯…紅葉マーク付きじゃないですか。こ、怖ぇ…。
ミドルクラスセダンはミニバンみたいに重くないしエンジンはけっこう強力なやつ積んでて、静かで速いと思います。私の場合、車は形が命なんで、速そう(に見える)なら実際速くなくても良いや。そもそもそんなスピード出さないです。

編集者:すずき(2006/11/19 16:16)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2003年12月8日

午前中は光工事の事前調査でした。光ファイバは電話線と並走させるのが普通ですが、電話線が埋め込み式だかで管には通せないと言われました。屋根の雨どいならば目立ちませんが3階建の場合、工事する車が屋根まで届かないかもしれない…な、なんだってー!?一応雨どいを通してみるが、だめなら電柱から部屋へ、一軒家で使う引き方を使うことでまとまりました。なるほど、東電通ナイスだ。
3学期の体育はこの世でもっとも不毛だと感じるマラソンです。この時点でもう鬱。今日は手始めに15分ほど走らされさらに嫌いになりました。これから際限なく嫌いになる予定。

編集者:すずき(2006/11/19 16:16)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2003年12月7日

都合3度目となる課外活動リーダー研修会への参加です。ただし今回は主催者側でして、いっそう疲れました。結果は成功したと言えましょう。三系のみなみなさまお疲れさんです…。今回の研修会、文化系からの参加者が少ないように思います。当日突然「やっぱり行けません」というドタキャンもいて、確実に学生団体への興味は薄れていると感じました。
入学した時からサークルにBOXが有って当たり前な今の学生には、BOXは天から降ってきたものじゃないと説明して頭ではわかっていたとしても、文サは指示や義務を課してくるウザい団体としか思えないのでしょう。少なくとも文化系はその傾向を感じます。リーダー研修会に参加を呼びかけて運営委員会の重要性を説いても、通じないのも仕方ない。学生団体の一つの転換期か、はたまた打開策があるのか?来期の運営委員も一筋縄では行かなさそうです。

編集者:すずき(2006/11/19 16:16)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
2003年12月19日 >>> 2003年12月6日
link もっと後

管理用メニュー

link 記事を新規作成

<2003>
<<<12>>>
-123456
78910111213
14151617181920
21222324252627
28293031---

最近のコメント5件

  • link 21年9月20日
    すずきさん (11/19 01:04)
    「It was my pleasure.」
  • link 21年9月20日
    whtさん (11/17 23:41)
    「This blog solves my ...」
  • link 24年10月1日
    すずきさん (10/06 03:41)
    「xrdpで十分動作しているので、Wayl...」
  • link 24年10月1日
    hdkさん (10/03 19:05)
    「GNOMEをお使いでしたら今はWayla...」
  • link 24年10月1日
    すずきさん (10/03 10:12)
    「私は逆にVNCサーバーに繋ぐ使い方をした...」

最近の記事3件

  • link 23年4月10日
    すずき (11/15 23:48)
    「[Linux - まとめリンク] 目次: Linux関係の深いまとめリンク。目次: RISC-V目次: ROCK64/ROCK...」
  • link 24年11月6日
    すずき (11/15 23:47)
    「[Ubuntu 24.04 LTS on ThinkPad X1 Carbon Gen 12] 目次: Linux会社ではTh...」
  • link 24年11月11日
    すずき (11/15 23:26)
    「[Pythonのテストフレームワーク] 目次: Python最近Pythonを触ることが増えたのでテストについて調べようと思い...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDFファイル RSS 1.0

最終更新: 11/19 01:04