// File: /workspace/github_c_makefile_star2_O0/X1319RAY[P]fileIO/getline.cpp
// Function: main
int main(int argc, char* argv[]){
	using namespace std;
	
	// コマンドライン引数のチェック
	if(argc != 2){
		cerr << "引数の数が間違っています．" << endl;
		cerr << "./getline input.txt" << endl;
		return 1;
	}
	
	// C++のファイル入力のための準備
	ifstream ifs(argv[1], ios::in);
	// ファイルを開くのに失敗したときの処理
	if(!ifs){
		cerr << "Error: file not opened." << endl;
		return 1;
	}
	
	string tmp;
	string str;
	int num;
	int sum = 0;
	// getline()で1行ずつ読み込む
	while(getline(ifs, tmp)){
		// ここでtmpを煮るなり焼くなりする
		cout << tmp << endl; // そのまま出力
		stringstream ss;
		ss << tmp;
		ss >> str >> num; // str == "name:"; num == number;
		sum += num; // 値をsumに加算
	}
	
	cout << "\nsum: " << sum << endl;
	
	// ファイルを閉じる
	ifs.close();
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x440, %rsp            # imm = 0x440
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpl $0x2, -0x8(%rbp)
je 0x130f
movq 0x2d2a(%rip), %rdi      # 0x3ff0
leaq 0xd37(%rip), %rsi       # 0x2004
callq 0x10d0
movq %rax, %rdi
movq 0x2ce4(%rip), %rsi      # 0x3fc0
callq 0x10e0
movq 0x2d08(%rip), %rdi      # 0x3ff0
leaq 0xd3d(%rip), %rsi       # 0x202c
callq 0x10d0
movq %rax, %rdi
movq 0x2cc2(%rip), %rsi      # 0x3fc0
callq 0x10e0
movl $0x1, -0x4(%rbp)
jmp 0x15ba
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
leaq -0x218(%rbp), %rdi
movl $0x8, %edx
callq 0x1150
movq -0x218(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x218(%rbp,%rax), %rdi
callq 0x1060
movb %al, -0x3f9(%rbp)
jmp 0x1348
movb -0x3f9(%rbp), %al
testb $0x1, %al
jne 0x1354
jmp 0x13b2
movq 0x2c95(%rip), %rdi      # 0x3ff0
leaq 0xcde(%rip), %rsi       # 0x2040
callq 0x10d0
movq %rax, -0x408(%rbp)
jmp 0x1370
movq -0x408(%rbp), %rdi
movq 0x2c42(%rip), %rsi      # 0x3fc0
callq 0x10e0
jmp 0x1385
movl $0x1, -0x4(%rbp)
movl $0x1, -0x228(%rbp)
jmp 0x159e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0x15ac
leaq -0x248(%rbp), %rdi
callq 0x1110
leaq -0x268(%rbp), %rdi
callq 0x1110
movl $0x0, -0x270(%rbp)
leaq -0x218(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0x1030
movq %rax, -0x410(%rbp)
jmp 0x13f0
movq -0x410(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x10f0
movb %al, -0x411(%rbp)
jmp 0x140e
movb -0x411(%rbp), %al
testb $0x1, %al
jne 0x141d
jmp 0x14ff
movq 0x2bac(%rip), %rdi      # 0x3fd0
leaq -0x248(%rbp), %rsi
callq 0x10c0
movq %rax, -0x420(%rbp)
jmp 0x1439
movq -0x420(%rbp), %rdi
movq 0x2b79(%rip), %rsi      # 0x3fc0
callq 0x10e0
jmp 0x144e
leaq -0x3f8(%rbp), %rdi
callq 0x1090
jmp 0x145c
leaq -0x3e8(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0x10c0
jmp 0x1471
leaq -0x3f8(%rbp), %rdi
leaq -0x268(%rbp), %rsi
callq 0x1100
movq %rax, -0x428(%rbp)
jmp 0x148d
movq -0x428(%rbp), %rdi
leaq -0x26c(%rbp), %rsi
callq 0x1070
jmp 0x14a2
movl -0x26c(%rbp), %eax
addl -0x270(%rbp), %eax
movl %eax, -0x270(%rbp)
leaq -0x3f8(%rbp), %rdi
callq 0x10a0
jmp 0x13d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0x1584
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
leaq -0x3f8(%rbp), %rdi
callq 0x10a0
jmp 0x1584
movq 0x2aca(%rip), %rdi      # 0x3fd0
leaq 0xb4b(%rip), %rsi       # 0x2058
callq 0x10d0
movq %rax, -0x430(%rbp)
jmp 0x151b
movq -0x430(%rbp), %rdi
movl -0x270(%rbp), %esi
callq 0x1130
movq %rax, -0x438(%rbp)
jmp 0x1536
movq -0x438(%rbp), %rdi
movq 0x2a7c(%rip), %rsi      # 0x3fc0
callq 0x10e0
jmp 0x154b
leaq -0x218(%rbp), %rdi
callq 0x1040
jmp 0x1559
movl $0x0, -0x4(%rbp)
movl $0x1, -0x228(%rbp)
leaq -0x268(%rbp), %rdi
callq 0x1080
leaq -0x248(%rbp), %rdi
callq 0x1080
jmp 0x159e
leaq -0x268(%rbp), %rdi
callq 0x1080
leaq -0x248(%rbp), %rdi
callq 0x1080
jmp 0x15ac
leaq -0x218(%rbp), %rdi
callq 0x1050
jmp 0x15ba
leaq -0x218(%rbp), %rdi
callq 0x1050
jmp 0x15c6
movl -0x4(%rbp), %eax
addq $0x440, %rsp            # imm = 0x440
popq %rbp
retq
movq -0x220(%rbp), %rdi
callq 0x1140