// File: /workspace/github_c_makefile_star2_O0/X1319RAY[P]fileIO/extraction.cpp
// Function: main
int main(int argc, char* argv[]){
	using namespace std;
	
	// コマンドライン引数のチェック
	if(argc != 2){
		cerr << "引数の数が間違っています．" << endl;
		cerr << "./extraction input.txt" << endl;
		return 1;
	}
	
	// C++のファイル入力のための準備
	ifstream ifs(argv[1], ios::in);
	// ファイルを開くのに失敗したときの処理
	if(!ifs){
		cerr << "Error: file not opened." << endl;
		return 1;
	}
	
	string str;
	int num;
	int sum = 0;
	// 抽出演算子>>を使ってデリミタで区切られた単語，値を読み込む
	while(ifs >> str >> num){
		// ここで格納した文字列や変数を煮るなり焼くなりする
		cout << str << " " << num << endl; // そのまま出力
		sum += num; // 値をsumに加算
	}
	
	cout << "\nsum: " << sum << endl;
	
	// ファイルを閉じる
	ifs.close();
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2a0, %rsp            # imm = 0x2A0
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpl $0x2, -0x8(%rbp)
je 0x12df
movq 0x2d5a(%rip), %rdi      # 0x3ff0
leaq 0xd67(%rip), %rsi       # 0x2004
callq 0x10a0
movq %rax, %rdi
movq 0x2d14(%rip), %rsi      # 0x3fc0
callq 0x10b0
movq 0x2d38(%rip), %rdi      # 0x3ff0
leaq 0xd6d(%rip), %rsi       # 0x202c
callq 0x10a0
movq %rax, %rdi
movq 0x2cf2(%rip), %rsi      # 0x3fc0
callq 0x10b0
movl $0x1, -0x4(%rbp)
jmp 0x1532
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
leaq -0x218(%rbp), %rdi
movl $0x8, %edx
callq 0x1120
movq -0x218(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x218(%rbp,%rax), %rdi
callq 0x1050
movb %al, -0x251(%rbp)
jmp 0x1318
movb -0x251(%rbp), %al
testb $0x1, %al
jne 0x1324
jmp 0x1382
movq 0x2cc5(%rip), %rdi      # 0x3ff0
leaq 0xd11(%rip), %rsi       # 0x2043
callq 0x10a0
movq %rax, -0x260(%rbp)
jmp 0x1340
movq -0x260(%rbp), %rdi
movq 0x2c72(%rip), %rsi      # 0x3fc0
callq 0x10b0
jmp 0x1355
movl $0x1, -0x4(%rbp)
movl $0x1, -0x228(%rbp)
jmp 0x1516
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0x1524
leaq -0x248(%rbp), %rdi
callq 0x10e0
movl $0x0, -0x250(%rbp)
leaq -0x218(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0x10d0
movq %rax, -0x268(%rbp)
jmp 0x13b4
movq -0x268(%rbp), %rdi
leaq -0x24c(%rbp), %rsi
callq 0x1060
movq %rax, -0x270(%rbp)
jmp 0x13d0
movq -0x270(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x10c0
movb %al, -0x271(%rbp)
jmp 0x13ee
movb -0x271(%rbp), %al
testb $0x1, %al
jne 0x13fd
jmp 0x149f
movq 0x2bcc(%rip), %rdi      # 0x3fd0
leaq -0x248(%rbp), %rsi
callq 0x1090
movq %rax, -0x280(%rbp)
jmp 0x1419
movq -0x280(%rbp), %rdi
leaq 0xc39(%rip), %rsi       # 0x2060
callq 0x10a0
movq %rax, -0x288(%rbp)
jmp 0x1435
movq -0x288(%rbp), %rdi
movl -0x24c(%rbp), %esi
callq 0x1100
movq %rax, -0x290(%rbp)
jmp 0x1450
movq -0x290(%rbp), %rdi
movq 0x2b62(%rip), %rsi      # 0x3fc0
callq 0x10b0
jmp 0x1465
movl -0x24c(%rbp), %eax
addl -0x250(%rbp), %eax
movl %eax, -0x250(%rbp)
jmp 0x1398
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x1070
jmp 0x1524
movq 0x2b2a(%rip), %rdi      # 0x3fd0
leaq 0xbae(%rip), %rsi       # 0x205b
callq 0x10a0
movq %rax, -0x298(%rbp)
jmp 0x14bb
movq -0x298(%rbp), %rdi
movl -0x250(%rbp), %esi
callq 0x1100
movq %rax, -0x2a0(%rbp)
jmp 0x14d6
movq -0x2a0(%rbp), %rdi
movq 0x2adc(%rip), %rsi      # 0x3fc0
callq 0x10b0
jmp 0x14eb
leaq -0x218(%rbp), %rdi
callq 0x1030
jmp 0x14f9
movl $0x0, -0x4(%rbp)
movl $0x1, -0x228(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x1070
leaq -0x218(%rbp), %rdi
callq 0x1040
jmp 0x1532
leaq -0x218(%rbp), %rdi
callq 0x1040
jmp 0x153e
movl -0x4(%rbp), %eax
addq $0x2a0, %rsp            # imm = 0x2A0
popq %rbp
retq
movq -0x220(%rbp), %rdi
callq 0x1110