掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Win98について (ID:53703)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> ヒープから。 #define BUFF_SIZE 1024 char *buf = NULL; buf = new char [BUFF_SIZE]; if(buf == NULL){ // error: out of memory } // (snip) delete[] buf; > 改行コード 例えば、以下のようにすれば、改行コードがLFかLF+CRかCRか不明でも、 改行コードの位置を判別可能です。 if(buf[i] == '\n){ // 改行コード発見 }else if(buf[i] == '\r'){ if(buf[i+1] == '\n'){ i++; } // 改行コード発見 } > 行の途中で読み込みデータが切れている もう一つバッファを用意し、そこに溜めておくとか。 次のデータを読み込んだ後、連続データとして処理すればよい。 ちょい面倒なので、イメージだけ。 char buff[400]={0}; size_t offset=0, len=0; for(;;){ // 第一引数の位置に第二引数のサイズだけ入力する関数と想定 ReadData(buff + offset, 400 - offset); len=strlen(buff); // 例えば len=200 if(len==0){ break; } // 必要な処理 // 残ったデータの先頭位置が firstからのオフセットで offset=180とする memmove(buff, buff + offset, len - offset); offset=len - offset; buff[offset]='\0'; // 終端文字を付加 }
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.