C++でcatを書いてみた

書いてみた。
こんな感じかな。

#include <iostream>

int main(int argc, char *argv[])
{
	// もし第一引数が指定されなかったら終了
	if (argc <= 1)
	{
		std::cout << "ファイルを指定してください" << endl;
		return 1;
	}
	
	// ファイルが見つからなかったら終了
	FILE *fp;
	if ((fp = fopen(argv[1], "r") == NULL)
	{
		std::cout << "ファイルが見つかりませんでした" << endl;
		return 1;
	}
	
	// 読み取って出力
	char buff[256] = "";
	int i = 0;
	while (fgets(buff, 256, fp) != NULL)
	{
		std::cout << buff;
		i++;
	}
	fclose(fp);
	
	return 0;
}

これを main.cpp なんかにかいて、
g++ -o cat main.cpp
とかってやればcatモドキができる。

Cはよくわからないのでいろんなものを調べたモノをコピペしてるんだけど、Cって文字列の扱いが難しい。このソースだと、一行に256文字以上あると、おかしくなるのかなー。ASとかJSだと動的に配列の上限変えられるから楽だよね。