「printf」を含む日記 RSS

はてなキーワード: printfとは

2019-09-26

anond:20190926101553

そんな感じだった。

最初自作バイナリエディタで、バイナリ直接編集でどうにかしようとしてたんだけど、

900回くらい編集→実行を繰り返して、ようやく printf ができそうなアドレス空間アクセスできた。

ところが、突如登場した、

カーネルプロテクターっていうアンチウィルスソフトみたいなのが自動修復を試みてきてなかなか成功しない。

最後は、コンパイラーって子の力を借りて、遂にprintf できる実行ファイルが完成する。

エンター・キーを押すと同時に、画面一杯に、 HELLO WORLD文字が乱れ飛び、

劇場内は拍手喝采、同時にエンディングテーマが流れ出す。

パートでは、すべての出来事がVM(バーチャルマシン)上で行われていたことが明かされた。

2019-09-21

c言語勉強していて分からないとこがあります先生

キーボードから数を入力させて、その数が素数か否かを判断させるコード」なんだけど

#include <stdio.h>

int main(void)
{
    int num,i;

   printf("2以上の整数入力してください。");
   scanf("%d,&num");


   for(i=2; 以下num; i++){
       if(i == num){
            printf("%dは素数です。",num);
       }
       else if((num % i) == 0){
            printf("%dは素数ではありません。",num);l
            breakl;
      }
      }
    
     return 0;
}

これがそのコードの例文。で俺の疑問箇所なんですが

 for(i=2; i以下num; i++){
       if(i == num){
            printf("%dは素数です。",num);
       }

ここのコードでどうして変数「num」が素数である判断できるのかが良く分からないんです。

俺が馬鹿文系脳でプログラミングの才能0だからからないというのはほぼ確定なんだけど、それでもここのとこが理解できないとモヤモヤして夜も眠れなそうなのでどうか教えて下さい。

なぜこれで素数だと判断できるんだろう

2019-08-20

anond:20190820150724

printf("わさびある?: %d\n", isWasabiAvailable());
if ( isWasabiAvailable() ) {
 ...
}

デバッグログ有効版とリリース版で動作が違う…なぜだ…」

2019-08-16

anond:20190816184432

c言語初めてみたけど

printf(“hello world”);

こんなので何がどうプログラムなのかさっぱり意味がわかんないんだけど

こういうのやっていけばいずれはゲームとか作れるようになるの?

2019-06-30

プログラミングできる

printf(“ハローワールド”);

これだけなんだけど。

これができて何なのっていつも思う。

ゲーム作るのに何の役に立つんだろうって。

2019-05-14

anond:20190514201042

当たり前だろう

printf(”今日も頑張ろう”);

セミコロンが抜けてるから

プログラマーってさぁ

printf(”今日も頑張ろう”)

みたいなそういうのだけ書いていればいいだけの仕事じゃないんでしょ?

2019-05-07

C++に再挑戦してる

大学時代C++が嫌いだった。

というより最初Hello Worldでつまずいてそこでやめてしまった。

「なんでstd::coutなんだ?printfじゃダメなのか?どうしてstdio.hを使わないんだ?」

とどっちも使えるという状態がとても気持ち悪くて、結局拡張子をcppとしただけのベターCを使うだけだった。

リーナス・トーバルズC++使わないって言ってるらしいぞ。やっぱりできる人はC言語なんだ」などとも考えていたような気がする。

あれから幾年か経った今になって、仕事の都合上C++に触れることになった。

もう長い間CやC++で書かれたより高レイヤー位置するプログラミング言語ばかり触ってきたので今更感があったが、今もう一度勉強し直す機会を得たと前向きに捉えてやってみることにした。

実際やってみると、なるほどstd::coutはフォーマット指定子に寄らない分便利だなと素直に受け入れられた。

他にもファイルの読み込みにはfopenじゃなくifstreamを使うとか、いろんなものC++用に書きやす方法があるのだと知り、それを素直に受け入れられた。

大学時代はその素直さがなかった。年月は俺に素直さを与えた。

2019-04-14

アプリログユースケースが知りたい

ログとはここでは、特にprintf()やロギングライブラリを使いアプリに仕込まれた明示的な出力とする。

サーバーサイドのログ必要だと分かる。

攻撃来てるかとか気付けるし、ビッグデータとしてゴニョゴニョ解析できるし。知らんけど。

でもアプリログってどう使えばいいの?

バグが起きた時とか、基本的再現手順を元にデバッガーのブレイクポイントとか使うだけで、ログは実際全然見てない。

あとネットワーク解析ソフトと、アプリに埋め込む系のデバッグツールあれば十分って感じ?

役立つログなんて、デバッガーの調子が悪い時にコミットしないものを一瞬入れるくらいかなぁ?

バグが起きた時はQAとかから再現手順と一緒にコンソール出力も飛んでくる。

その中で例外出力は有用なことが多いんだけど、それはハンドリングされなかったのが出てるだけ。

ロギングライブラリを使って何段階もログレベル分けてやって得られたものがあまりないなあって最近思う。

2019-03-12

anond:20190312212825

C言語ってちょっとやったけど、これができて何が楽しいの?

ってなったんだけど。これからどうやってマインクラフト作れるようになるのか分かんない。

#include <stdio.h>

int main(void)

{

printf("Hello masuda");

retern 0;

}

2019-03-05

なぜ「Hello world」は誰が書いても高品質になるのか

品質ソフトウェアは変更が容易である

例としてこちらをご覧いただきたい。

/* Hello world */
#include <stdio.h>

int main(void) {
    printf("Hello, world!");
    return 0;
}

このコードは高品質である

理由は以下の通り。

  1. 設計シンプル
    何の分岐も判定もない。容易にC2カバレッジ100%にできるシンプルさ。
  2. 高凝集度、かつ低結合度
    変数を使っていないし、そもそも単一ブロック構成されているので結合のしようがない。
  3. 環境依存せず、移植性が高い
    標準ライブラリのみで構成されている。
  4. 適切に構造化されている
    そもそも構造と呼べる要素がない。
  5. 実行時エラーの恐れがない
    唯一、コンパイル時に検出できないのはprintf引数だが、例えここが"hellow world"になっていたとしてもプログラム問題なく実行できる。

2018-12-24

anond:20181224075038

ほい。ごく簡単アニメーションを付けてみた


#include "stdafx.h"
#include <string.h>

int main()
{
	char buffer[47];

	strcpy(buffer, "%0sHelloWorld\n");

	for (int i = 0; true; i++)
	{
		int c = i % 16 ;
		if (c % 8 == c) {
			buffer[1] = '0' + c;
		}
		else {
			buffer[1] = '0' + 8 - (c-8);
		}
		

		printf(buffer," ");


	}

    return 0;
}

anond:20181223182447

最近Visual Studio勉強用なら無料

https://visualstudio.microsoft.com/ja/

Visual Studioだって今は無料

簡単プログラム

printf("Hello world\n");

よく知られているやつ

簡単プログラム

今回の元となるコード for ループ

// ConsoleApplication2.cpp
//


int main()
{
	for (int i = 0; i < 8; i++)
	{
		printf("Hello 47\n");
	}
	getchar();
    return 0;
}

<は<の半角

実行結果

Hello 47
Hello 47
Hello 47
Hello 47
Hello 47
Hello 47
Hello 47
Hello 47

2018-12-23

anond:20181223205616

ほいよ

	char format[50];
	strcpy(format, "%0s%s");
	for (int i = 0; i < 8; i++) {
		printf(format,"","Hello world\n" );
		format[1]++;
	}

スペース増田なら こんなかんじか?

anond:20181223183225

初心者

class mystring
{
public:
	char *buffer;
	mystring() 
	{
		buffer = (char*)"";
	}

	void operator = (const char*t)
	{
		int len = strlen(t);
		buffer = new char[len + 47];
		strcpy(buffer, t);
	}

	void operator = (const mystring&src)
	{
		int len = strlen(src.buffer);
		buffer = new char[len + 47];
		strcpy(buffer, src.buffer);
	}

	mystring& operator + (const char*t)
	{
		int len = strlen(buffer);
		int len2 = strlen(t);
		char *buffer2 = new char[len + len2 + 47];
		strcpy(buffer2, buffer);
		strcpy(buffer2+len, t);
		buffer = buffer2;
		return *this;
	}
	mystring&  operator + (const mystring&src)
	{
		return ((*this) + src.buffer);
	}

};

	mystring my_space_org;
	for (int i = 0; i < 8; i++) {
		mystring space;
		space = my_space_org + " ";
		printf("%sHello world\n", space.buffer);
		my_space_org = space;
	}

anond:20181223182722

一気に並べてみる

オーソドックスな書きかた

int i;
int space;
for (int i = 0; i < 8; i++)
{
	for (space = 0; space < i; space++)
	{
		printf(" ");
	}
	printf("Hello world\n");

}

すまん <は半角の<に置き換えてくれ(w)

バッファをつかってループを1つ削る

	int i;
	int space;
	char buffer[8];
	char buffer2[8];
	memset(buffer, 0, 8);
	memset(buffer2, 0, 8);
	for (int i = 0; i < 8; i++)
	{
		memset(buffer, 0x20, i);
		printf("%sHello world\n",buffer);

	}

memsetも削ってみる

	int i;
	int space;
	char buffer[8];
	char buffer2[8];
	memset(buffer, 0, 8);
	memset(buffer2, 0, 8);
	for (int i = 0; i < 8; i++)
	{
		buffer[i] = 0x20;
		printf("%sHello world\n",buffer);

	}

この場合特に影響はないが一般的にはmemsetを使う使わないは大きな影響になるので

memsetを削る場合は注意が必要

C++を使ってみる

	std::string space;
	for (int i = 0; i < 8; i++) {
		printf("%sHello world\n", space.c_str());
		space += " ";
	}

C++を使ってみるの別回答

	std::string space_org;
	for (int i = 0; i < 8; i++) {
		std::string space = space_org + " ";
		printf("%sHello world\n", space.c_str());
		space_org = space;
	}

考察

ざつにかんがえても 書き方いろいろ 

それぞれメリット デメリットが有る

まり まぁ どれがいいというよりは

状況に応じてかき分けていく必要がある

学校の授業などだと

アルゴリズムの話で

ヒープソート マージソート クイックソート比較みたいな話があるけど

そこまで難しい話にいかなくても

ハローワールドだけ見てかつ雑に考えてもこのぐらいは

書き方がたくさんある

どれを書くか?どれがいいか? 考えると面白い

anond:20181223182447

	std::string space;
	for (int i = 0; i < 8; i++) {
		printf("%sHello world\n", space.c_str());
		space += " ";
	}

 ↑ C++的 な 書き方1

	std::string space_org;
	for (int i = 0; i < 8; i++) {
		std::string space = space_org + " ";
		printf("%sHello world\n", space.c_str());
		space_org = space;
	}

こっちの書き方のほうが 無駄は多いけど 使いやす

anond:20181223162005

	std::string space;
	for (int i = 0; i < 8; i++) {
		printf("%sHello world\n", space.c_str());
		space += " ";
	}

LT;は<

例外的

効率は悪いけど こういうふうな書き方もできるC++

anond:20181223152531

技としてはナイスだけど応用は厳しいよね

	const char *message = "        Hello world\n";

	for (int i = 0; i < 8; i++) {
		printf("%s", message + 8 - i);
	}

サンプルとしては、使いにくい書き方

ハローワールドループだけでも

結構遊べる

あなたは どんな 書き方が好き?

ゼロページ

	struct alignas(1) sample{
		char buffer[8];
		char buffer2[8];
	};
	sample sample;
	int i;
	int space;
	memset(sample.buffer, 0, 8);
	memset(sample.buffer2, 0, 8);
	for (int i = 0; i < 8; i++)
	{
		sample.buffer[i] = 0x20;
		printf("%sHello world\n", sample.buffer);

	}

anond:20181223150830

3つともおなじ

int i;
int space;
for (int i = 0; i < 8; i++)
{
	for (space = 0; space < i; space++)
	{
		printf(" ");
	}
	printf("Hello world\n");

}

すまん <は半角の<に置き換えてくれ(w)

	int i;
	int space;
	char buffer[8];
	char buffer2[8];
	memset(buffer, 0, 8);
	memset(buffer2, 0, 8);
	for (int i = 0; i < 8; i++)
	{
		memset(buffer, 0x20, i);
		printf("%sHello world\n",buffer);

	}
	int i;
	int space;
	char buffer[8];
	char buffer2[8];
	memset(buffer, 0, 8);
	memset(buffer2, 0, 8);
	for (int i = 0; i < 8; i++)
	{
		buffer[i] = 0x20;
		printf("%sHello world\n",buffer);

	}

書き直すごとにアルゴリズムちょっとづつ良くなったり悪くなったり

どれがすき?

anond:20181223150251

	int i;
	int space;
	char buffer[8];
	char buffer2[8];
	memset(buffer, 0, 8);
	memset(buffer2, 0, 8);
	for (int i = 0; i < 8; i++)
	{
		memset(buffer, 0x20, i);
		printf("%sHello world\n",buffer);

	}

int i;
int space;
for (int i = 0; i < 8; i++)
{
	for (space = 0; space < i; space++)
	{
		printf(" ");
	}
	printf("Hello world\n");

}

すまん <は半角の<に置き換えてくれ(w)

====

Hello world
 Hello world
  Hello world
   Hello world
    Hello world
     Hello world
      Hello world
       Hello world
アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん