C

CのfscanfによるCSV(カンマで区切られたファイル)の読み込み

C

#include <stdio.h> int main(){ FILE *fp; char *fname = "sample.csv"; int ret; double data[3]; fp = fopen( fname, "r" ); if( fp == NULL ){ printf( "%sファイルが開けません\n", fname ); return -1; } while( (ret=fscanf(fp, "%lf,%lf,%lf", &data[0], &dat</stdio.h>…

C/C++のXML Parserについてよくまとまっているサイト

C CPP

http://xoyip.hatenablog.com/entry/2014/07/21/193000 参照

C言語で苦しむロックフリー入門

C

ためになるhttps://www.slideboom.com/presentations/1350345/C%E8%A8%80%E8%AA%9E%E3%81%A7%E8%8B%A6%E3%81%97%E3%82%80%E3%83%AD%E3%83%83%E3%82%AF%E3%83%95%E3%83%AA%E3%83%BC%E5%85%A5%E9%96%80%EF%BC%88%E4%BB%AE

C言語でのchar short long longlongでの最大値の定義

C

limits.hに色々なタイプのCの整数の最大値と、最小値が文字定数として定義されています ... #define CHAR_BIT 8 /* number of bits in a char */ #define SCHAR_MIN (-128) /* minimum signed char value */ #define SCHAR_MAX 127 /* maximum signed char …

C言語でtrim

C

[C] Trimは文字列の前後のスペースを取り除く、トリミングを行う関数。 VBとか他の言語には標準でついてたりするけどCには無いので。 #include <stdio.h> #include <string.h> char* ltrim (const char* string) { char* tmp = (char*) string; for (; *tmp == 0x20 && *tmp != </string.h></stdio.h>…

小数点第何位かで四捨五入

C

[C] テキストファイルに出力するんだったら丸めたい桁に5足して、sprintfで桁指定の出力するといい // 第4位で四捨五入 double num = 0.66666666; num = num + 0.0005; char buff[1024]; sprintf(buff,"%.3f",num);

文字列から数値に変換

C CPP

文字列の日付を数値にして抽出など。CStringでも使える。 char *str = "2013/4/9" long year,month,day; sscanf(str,"%d/%d/%d",&year,&month,&day);ネタ元 http://www.ccad.sist.chukyo-u.ac.jp/~mito/ss/program/C/DialogBase/app/string/ http://www9.pla…

C標準関数でファイルサイズの取得 fseek( fp, 0, SEEK_END ) / ftell( fp )

C

久々で忘れちゃってたのでメモ #include <stdio.h> int main(void) { FILE *fp; char *fname = "test.txt"; long sz; fp = fopen( fname, "rb" ); if( fp == NULL ){ printf( "%sファイルが開けません\n", fname ); return -1; } fseek( fp, 0, SEEK_END ); sz = ftel</stdio.h>…

シフトJIS文字列の判定処理例

C

#define jms1(c) \ (((0x81 <= ((unsigned char)(c))) && (((unsigned char)(c)) <= 0x9F)) || ((0xE0 <= ((unsigned char)(c))) && (((unsigned char)(c)) <= 0xFC) )) #define jms2(c) \ ((0x7F != (unsigned char)(c)) && (0x40 <= ((unsigned char)(c)))…

引数の変数名 src は source(送り元)の略であり, dest は destination(行き先)の略である

C

いままで意識してなかったけど、そういやそうだなと思った。

コンパイル日付を得るには__DATE__ 但し 英表記

C

Mar 30 2008 って感じ。数字で欲しいときは頑張って変換するっきゃない。

qsort()例

C

小さい順(昇順)に並び替える static int compSmallLong( const void *arg1, const void *arg2 ) { return *(( long * )arg1 ) - *(( long * )arg2 );} ・・・ long arr_sample[4]; arr_sample[0] = 10; arr_sample[1] = 5; arr_sample[2] = 4; arr_sample[3] = …

エラー番号の取得 エラー内容の取得

C

fopen()で失敗したときのエラーの種類を知る方法。 #include <stdio.h> #include <errno.h> void main(void) { FILE *fp = fopen( "nofile.zzz", "r" ); if( fp == NULL ){ printf( "%d\n", errno ); } else{ fclose( fp ); } }こっちだとエラーの中身を文字列で表示。 #includ</errno.h></stdio.h>…

指定した年の日数を返す

C

使うときはエラー処理とか入れてね。 #include <time.h> long count_day(long year){ tm data; data.tm_year = year-1900+1; data.tm_mon = -1+1; data.tm_mday = 1; data.tm_hour = 0; data.tm_min = 0; data.tm_sec = 0; data.tm_isdst = 0; time_t next_time = mk</time.h>…

C/C++で四捨五入

C CPP

小数を整数に四捨五入する場合。 #include <math.h> ... double x = 5.5674; // 例 double round_x; round_x=floor(x*100+0.5)/100; ... floor()は 入力値以下の最大の整数値を計算する関数。参考 http://oshiete.nikkeibp.co.jp/qa2207594.html http://www.bohyoh.c</math.h>…

高速な一番右端の立っているビット位置検出

C CPP

いつか役立つかも。ということでメモ http://blog.livedoor.jp/dankogai/archives/51231722.html 上記の元ネタ http://d.hatena.ne.jp/siokoshou/20090704#p1 より詳しい解説 http://d.hatena.ne.jp/siokoshou/20090706

&& と || の短絡評価

C CPP

int a = 0; int b = 1; if (a == 0 || b == 1) printf("a\n");簡単に言えば、"a == 0" で条件が満たされているのでこっちだけ評価されて、"b == 1"は評価されないよという話。"b == 1"のほうに不具合があったりすると、しばらく隠れていて開発終盤で発覚、と…

アルファベット大文字を小文字に変換する

C CPP

tolower() 関数を使います。これはC標準。ネタ元 http://always-pg.com/c/runtime_rd/character/tolower.html 逆はtoupper()関数。ネタ元 http://always-pg.com/c/runtime_rd/character/toupper.html

スタティック(static)関数

C CPP

Cの場合 静的関数と呼ばれファイル内のみ有効で、定義されているファイル外では利用できなくなります。 C++の場合(クラスのメンバ関数で使用する場合) クラスの外部から静的メンバ関数を呼び出すには、「クラス名+"::"+静的メンバ関数名」という形式で呼び…

スタティック(static)変数

C CPP

聞かれて説明できなかったので復習。 関数やブロック内で宣言された変数で、そのブロックが終了しても値を保持しているもの。静的変数とも言う。 「static」というキーワードを用いて宣言する言語が多い。 オブジェクト指向のプログラミング言語の場合は、生…

アニメーションでみるソートアルゴリズム比較

http://vision.bc.edu/~dmartin/teaching/sorting/anim-html/all.html縦軸がソート前データの並び、横軸がアルゴリズム。どんなデータ配置のときに、どのアルゴリズムが速いかが目で見て分かります。

マージ・ソート : 巨大データのソート法

C CPP

http://codezine.jp/article/detail/2886?p=1ソートのアルゴリズムの一種。わかりやすく解説してあります。

C言語 FAQ 日本語訳

C

http://www.kouno.jp/home/c_faq/何かを手っ取り早く勉強するには、 基本を学ぶ。 FAQを読む。わからない点は調べる。 とのこと