Tôi có một tập tin với dữ liệu được liệt kê như sau:C++ tập tin io & tách bởi dấu phân cách
0, 2, 10
10, 8, 10
10, 10, 10
10, 16, 10
15, 10, 16
17, 10, 16
Tôi muốn để có thể nhập vào các tập tin và chia nó thành ba mảng, trong quá trình cắt tỉa tất cả các không gian dư thừa và chuyển đổi từng phần tử thành số nguyên.
Vì một lý do nào đó, tôi không thể tìm thấy cách dễ dàng để thực hiện việc này trong C++. Thành công duy nhất tôi có là bằng cách nhập mỗi dòng vào một mảng và sau đó loại bỏ tất cả các khoảng trắng và sau đó tách nó ra. Toàn bộ quá trình này đã cho tôi 20-30 dòng mã tốt và nỗi đau của nó để sửa đổi để nói một dấu tách khác (ví dụ: dấu cách), v.v.
Đây là tương đương python của những gì tôi muốn có trong C++:
f = open('input_hard.dat')
lines = f.readlines()
f.close()
#declarations
inint, inbase, outbase = [], [], []
#input parsing
for line in lines:
bits = string.split(line, ',')
inint.append(int(bits[0].strip()))
inbase.append(int(bits[1].strip()))
outbase.append(int(bits[2].strip()))
Dễ sử dụng khi làm điều này trong python là một trong những lý do khiến tôi chuyển nó ngay từ đầu. Tuy nhiên, tôi yêu cầu để làm điều này trong C + + bây giờ và tôi sẽ ghét phải sử dụng mã số 20-30 xấu xí của tôi.
Bất kỳ trợ giúp nào sẽ được đánh giá cao, cảm ơn!
Công việc tuyệt vời. Folks quên về mô hình phù hợp của scanf. Giải pháp đơn giản nhất là giải pháp tốt nhất. – jbruni