C言語なら、俺に聞け! <17>

このエントリーをはてなブックマークに追加
>>902
コレもK&Rに載ってるはずだが、プリプロセッサがマクロに渡した引数を
リテラルに置き換える機能、連続したリテラルを一つのリテラルにまとめる
機能を持っている。

こんなかんじ。

#include <stdio.h>

#define LEN 32
#define TOSTR(x) #x

int main()
{
char buf[256];
char buf2[LEN+1];

while (fgets(buf, sizeof(buf), stdin) != 0)
{
sscanf(buf, "%" TOSTR(LEN) "s", buf2);
}
return 0;
}