c ++ ວິທີການອ່ານເອກະສານເຂົ້າໃນ array


ຕອບ 1:

C ++ ໃຊ້ C ມາດຕະຖານ I / O ໃນການເຂົ້າເຖິງເອກະສານ. ສະນັ້ນລະຫັດ C ຈະເຮັດວຽກໄດ້ດີ.

C ++ ມີວັດຖຸ iostream ງາມໆບາງຢ່າງທີ່ເຮັດສິ່ງດີໆແບບນີ້.

ມັນຊ່ວຍໃຫ້ຮູ້ຮູບແບບຂອງເອກະສານ. ທ່ານ ກຳ ລັງອ່ານເຄື່ອງ ໝາຍ ຈຸດຢູ່ໃນສະຖານທີ່ທີ່ແຍກອອກ, ຫລືແຍກເປັນ ໜຶ່ງ ເສັ້ນ?

ທ່ານເວົ້າຖືກວ່າພວກເຂົາບໍ່ແມ່ນຕົວເລກ, ແຕ່ເປັນຕົວເລກຕົວເລກ. ທ່ານຈະຕ້ອງປ່ຽນຕົວ ໜັງ ສືເປັນຕົວເລກຫລັງຈາກອ່ານແລ້ວ. ໂດຍບໍ່ຮູ້ຕົວເລກປະເພດໃດ, ໃຊ້ສອງເທົ່າເພື່ອປົກປິດການເດີມພັນທັງ ໝົດ.

ຄຳ ຕອບຂອງ Michael Bauers ແມ່ນດີ, ແຕ່ຂາດ ຄຳ ອະທິບາຍ.

ເປີດເອກະສານອ່ານຂໍ້ຄວາມປ່ຽນເປັນຕົວເລກເພີ່ມໃສ່ຖັງ. ປິດແຟ້ມ

ເອົາຂອງຂ້ອຍ:

ສ້າງຜູ້ປະກອບການເພື່ອໃຫ້ຕົວເລກຈາກແຟ້ມເປັນ vector.

ປະຕິບັດການ vector ຈຳ ນວນເປີດໄຟລ໌ປະຕິບັດການເພື່ອຕື່ມຂໍ້ມູນໃສ່ vector ປິດໃຊ້ໄຟ

// ສ້າງຜູ້ປະຕິບັດງານ >> ເພື່ອເຮັດວຽກກັບ vector ແລະ istream std :: istream & operator >> (std :: istream & in, std :: vector & v){ double ງ; ໃນຂະນະທີ່ (ໃນ >> d) // ifstream ເຮັດຕົວ ໜັງ ສື -> ການແປງສອງຄັ້ງv.push_back (d); // ເພີ່ມໃສ່ vector ກັບມາໃນ; // ກັບຄືນ istream ຕົວມັນເອງ} // ສ້າງ vector ເພື່ອຖືສອງເທົ່າstd :: vector mynumbers;std :: ifstream inputFile {"file.txt"}; // {} ແມ່ນ syntax 'ເລີ່ມຕົ້ນ' ໃນຂະນະທີ່ (inputFile)inputFile >> mynumbers; // ປ້ອນທຸກຕົວເລກຈົນກວ່າຈະເຮັດinputFile.close (); // ປິດແຟ້ມ// ຕອນນີ້ vector ຖືກໂຫລດແລ້ວ, ເອກະສານຖືກປິດແລ້ວ - ພ້ອມແລ້ວ.

ວົງຈອນອ່ານແມ່ນຢູ່ໃນ ໜ້າ ທີ່ຂອງຜູ້ປະຕິບັດງານ >>, ດັ່ງນັ້ນ syntax ແມ່ນສັ້ນກວ່າແຕ່ສາມາດອ່ານໄດ້ຫຼາຍ. ສິ່ງໃດກໍ່ຜິດພາດ (ບໍ່ພົບເອກະສານ, ບໍ່ມີຂໍ້ມູນ .. ) ແລະຖ້າກະແສໄຟຟ້າລ້າງຕົວເອງແລະສ້າງຂໍ້ຍົກເວັ້ນທີ່ລົ້ມເຫລວເຊິ່ງທ່ານສາມາດຈັບຫລືປ່ອຍໃຫ້ໂປຣແກຣມຕາຍ.


ຕອບ 2:

ຄຳ ຖາມ: ຂ້ອຍສາມາດອ່ານຕົວເລກໃນເອກະສານຂໍ້ຄວາມເຂົ້າໃນອາເລໃນ C ++ ໄດ້ແນວໃດ?

ດອກ 3 ຕອບ ຄຳ ຮ້ອງຂໍຈາກ 3 ຄົນຕ່າງກັນ ໝົດ ທຸກຄົນໃນ ຄຳ ຖາມດຽວກັນນີ້. ແປກ! ເກືອບເບິ່ງຄືວ່າບາງສິ່ງບາງຢ່າງທີ່ຜູ້ໃດຜູ້ຫນຶ່ງສາມາດຊອກຫາ ຄຳ ຕອບແທນທີ່ຈະຖາມ Quora ເຊັ່ນກັນ. ຂ້ອຍບໍ່ ຈຳ ເປັນຕ້ອງໃຊ້ google - ຂ້ອຍສາມາດຂຽນລະຫັດຈາກຄວາມຊົງ ຈຳ ແລະຄວາມຄິດຂອງຂ້ອຍ:

# ປະກອບ # ປະກອບ # ປະກອບ ການໃຊ້ namespace std;int ຕົ້ນຕໍ (int argc, char ** argv){ ifstream ໃນ ("file.txt", ifstream :: ໃນ);vector lstNumbers; ໃນຂະນະທີ່ ((! in.eof ()) && ໃນ) { int iNumber = 0; ໃນ >> iNumber; lstNumbers.push_back (iNumber); } in.close (); // ເຈົ້າຕ້ອງການຫຍັງກັບຕົວເລກເຫລົ່ານີ້ ???}

Ok ຂ້ອຍຕົວະຂ້ອຍ - ຂ້ອຍຕ້ອງໄດ້ໃຊ້ເອກະສານອ້າງອີງ C ++ ສຳ ລັບຊັ້ນ vector ເພາະວ່າຂ້ອຍຊື່ສັດບໍ່ເຄີຍໃຊ້ມັນ. ຂ້ອຍເຮັດວຽກກັບກອບ QT ເຊິ່ງມີຫ້ອງຮຽນຂອງຕົນເອງ ສຳ ລັບໂຄງສ້າງຂໍ້ມູນທັງ ໝົດ (ລາຍຊື່, ແຜນທີ່, ຊຸດ, ແລະອື່ນໆ). ນອກຈາກນັ້ນ, ຂ້ອຍບໍ່ ທຳ ມະດາເຮັດວຽກກັບ File I / O - ຂ້ອຍເຮັດວຽກຢູ່ Java ຕົ້ນຕໍເປັນມືອາຊີບແລະແມ່ນແຕ່ຢູ່ທີ່ນັ້ນຂ້ອຍບໍ່ໄດ້ເຮັດວຽກກັບແຟ້ມຍົກເວັ້ນເຊັ່ນ JSON ແລະ XML XML ແລະ ສຳ ລັບຜູ້ທີ່ມີຫ້ອງສະຫມຸດທີ່ບໍ່ມີຕົວຕົນ ສຳ ລັບນັກຂຽນໂປແກມ ສະນັ້ນ, ຄົນເຮົາບໍ່ ຈຳ ເປັນຕ້ອງກັງວົນກ່ຽວກັບການເປີດ, ປິດຫລືອ່ານຊິ້ນສ່ວນຕ່າງໆອອກຈາກແຟ້ມ. ແຕ່ສິ່ງນີ້ຄວນຈະເຮັດແນວນັ້ນ ສຳ ລັບທ່ານທີ່ຂ້ອຍເຊື່ອ.

ຂ້ອຍບໍ່ໄດ້ທົດສອບເລື່ອງນີ້ - ພຽງແຕ່ຈະແຈ້ງຂື້ນ - ການປ່ຽນແປງ ໜຶ່ງ ທີ່ຂ້ອຍອາດຈະເຮັດຄືການໃສ່ລະຫັດແຟ້ມເອກະສານພາຍໃນ block / catch block ແຕ່ເນື່ອງຈາກ C ++ ບໍ່ມີຂໍ້ຍົກເວັ້ນກ່ຽວກັບຂໍ້ຍົກເວັ້ນດັ່ງ Java, ຂ້ອຍບໍ່ໄດ້ຢູ່ທີ່ນີ້. ຄວາມພະຍາຍາມ / ຈັບຈະຢຸດຄວາມຜິດພາດ pesky ຈາກການປະກົດຕົວເຖິງແມ່ນວ່າຈະເປີດຫລືປິດເອກະສານ - ບັນຈຸຂໍ້ຜິດພາດດັ່ງນັ້ນເພື່ອເວົ້າ.


ຕອບ 3:

ບາງສິ່ງບາງຢ່າງເຊັ່ນນີ້.

ໂດຍທົ່ວໄປຂ້ອຍບໍ່ມັກແບບຂອງການອ່ານ ints ໂດຍກົງຈາກເອກະສານ. ຂ້ອຍມັກອ່ານເສັ້ນໃນແຕ່ລະຄັ້ງ, ຫຼັງຈາກນັ້ນແຍກສາຍ. ຂ້າພະເຈົ້າຍອມຮັບວ່າຂ້າພະເຈົ້າບໍ່ແນ່ໃຈ 100% ຂອງພຶດຕິ ກຳ ຂອງການອ່ານຕົວເລກໂດຍກົງ, ເຊັ່ນວ່າມີຫຍັງເກີດຂື້ນຖ້າມີການແຊກແຊງສິ່ງທີ່ບໍ່ແມ່ນຕົວເລກ.

ເວັ້ນເສຍແຕ່ວ່ານີ້ແມ່ນໂຄງການທີ່ຕ້ອງການຂັງ, ຂ້ອຍຈະໃຊ້ vector. Arrays ບໍ່ປັບຂະ ໜາດ, ແລະການຂຽນໂປແກຼມທີ່ມີ buffers ຄົງທີ່ແມ່ນຂໍ້ຜິດພາດ, ແລະຂ້ອຍສາມາດພິສູດມັນໄດ້ໂດຍບອກເຈົ້າຕະຫຼອດເວລາທີ່ຂ້ອຍຄິດແນວຄິດຂ້ອຍຂ້ອຍໄດ້ເຮັດໃຫ້ຂະ ໜາດ ສູງສຸດພໍສົມຄວນ (ຂ້ອຍຈະບໍ່, ແຕ່ມີບາງຄັ້ງ .)

# ປະກອບ # ປະກອບ # ປະກອບ # ປະກອບ ການໃຊ້ namespace std;int ຕົ້ນຕໍ () { ifstream myfile ("d: \\ number.txt"); ຖ້າ (myfile.is_open ()) { int arrSize = 0;ຂບວນ ມາຮອດ; // ດີທີ່ສຸດມັນອາດຈະເປັນ vector, ແຕ່ທ່ານເວົ້າວ່າ array ໃນຂະນະທີ່ (ຄວາມຈິງ) { int x; myfile >> x; ຖ້າ (myfile.eof ()) ພັກຜ່ອນ; arr [arrSize ++] = x; } ສຳ ລັບ (int i = 0; i cout << ມາຮອດ [i] << ""; cout << endl; // ຂ້ອຍຄວນຈະປິດເອກະສານຢູ່ບ່ອນນີ້, ແຕ່ຍ້ອນວ່າໂປຣແກຣມ ກຳ ລັງຈະສິ້ນສຸດລົງຂ້ອຍກໍ່ເປັນຄົນຂີ້ຕົວະ} ອື່ນ { cout << "ບໍ່ສາມາດເປີດແຟ້ມ"; } ກັບຄືນ 0;}

ຕອບ 4:

ຖ້າທ່ານແນ່ໃຈວ່າເອກະສານມີພຽງແຕ່ຕົວເລກທີ່ທ່ານຕ້ອງການອ່ານ, ແລະທ່ານມີຄວາມຮູ້ສຶກພໍທີ່ຈະຮັກສາ“ ອາເລມ” ເປັນແນວຄິດທີ່ບໍ່ມີຕົວຕົນ, ແທນທີ່ຈະເວົ້າໂດຍສະເພາະກ່ຽວກັບອາເລ - ສິ່ງທີ່ C ++ ສືບທອດມາຈາກ C, ຫຼັງຈາກນັ້ນມັນກໍ່ສາມາດ ສົມເຫດສົມຜົນພໍສົມຄວນໃນການເລີ່ມຕົ້ນ vector (ຫຼື vector , ແລະອື່ນໆ) ຈາກໄຟລ໌ບາງສິ່ງບາງຢ່າງເຊັ່ນນີ້:

std :: ຖ້າການປ້ອນຂໍ້ມູນກະແສໄຟຟ້າ (“ number.txt”);std :: vector ຕົວເລກ {std :: istream_iterator (ວັດສະດຸປ້ອນ), {}};

(ສຳ ລັບ“ T” = ປະເພດໃດກໍ່ຕາມທີ່ທ່ານຕ້ອງການອ່ານ - int, double, float, ແລະອື່ນໆ)

ຖ້າຫາກວ່າເອກະສານຂອງທ່ານອາດຈະມີ "ຂີ້ເຫຍື້ອ" ລະຫວ່າງຕົວເລກ, ທ່ານຍັງສາມາດເຮັດແບບດຽວກັນໄດ້ຖ້າທ່ານຕ້ອງການ. istream_iterator ໂດຍພື້ນຖານແລ້ວແມ່ນຜູ້ດັດແປງທີ່ໃຊ້ຜູ້ປະຕິບັດງານ >> ອ່ານລາຍການຕ່າງໆຈາກກະແສ. ວ່າ, ໃນທາງກັບກັນ, ບໍ່ສົນໃຈພື້ນທີ່, ດັ່ງນັ້ນບາງສິ່ງບາງຢ່າງເຊັ່ນ: `1 2` ຈະອ່ານເປັນ 1 ຕາມດ້ວຍ 2.

ແຕ່ນີ້ແມ່ນ ໜຶ່ງ ໃນບັນດາສະຖານທີ່ທີ່ iostreams ຖືກອອກແບບຢ່າງ ເໝາະ ສົມ: iostream ບໍ່ໄດ້ (ຕົວເອງ) ກຳ ນົດວ່າສີຂາວແມ່ນຫຍັງ. ແທນທີ່ຈະ, ມັນໄດ້ມອບສິດໃຫ້ກັບທ້ອງຖິ່ນຂອງກະແສ.

ຖ້າພວກເຮົາຕ້ອງການທີ່ຈະບໍ່ສົນໃຈສິ່ງເສດເຫຼືອພິເສດໃນສາຍນ້ ຳ (ຕົວຢ່າງ, ທຸກຢ່າງທີ່ບໍ່ແມ່ນຕົວເລກ) ພວກເຮົາສາມາດ ກຳ ນົດທ້ອງຖິ່ນທີ່ເວົ້າວ່າທຸກຢ່າງແມ່ນບ່ອນຫວ່າງ, ຫຼັງຈາກນັ້ນພຽງແຕ່ອ່ານຕົວເລກຂອງພວກເຮົາຈາກກະແສ.

struct digits_only: std :: ctype {digits_only (): std :: ctype (get_table ()) {} stic std :: ctype_base :: mask const * get_table () { // ກ່ອນອື່ນ ໝົດ, ສ້າງຕາຕະລາງທີ່ເວົ້າວ່າທຸກຢ່າງແມ່ນຊ່ອງຫວ່າງ: stic std :: vector rc (std :: ctype) :: table_size, std :: ctype_base :: space); // ແລ້ວຕັ້ງຕົວເລກເປັນຕົວເລກຕົວຈິງ: ຖ້າ (rc ['0'] == std :: ctype_base :: ພື້ນທີ່) std :: fill_n (& rc ['0'], 9, std :: ctype_base :: mask ()); // ກັບຄືນຕາຕະລາງເພື່ອຈັດປະເພດຕົວອັກສອນຕາມຄວາມ ເໝາະ ສົມ: ກັບຄືນ & rc [0]; }};

ຈາກນັ້ນພວກເຮົາບອກໃຫ້ກະແສ ນຳ ໃຊ້ສະຖານທີ່ນີ້, ແລະອ່ານຂໍ້ມູນຈາກສາຍນ້ ຳ:

int ຕົ້ນຕໍ () { std :: istringstream input (R "(11 junk 1.00 more-junk 16.0 ຍັງມີອີກຫຼາຍກະປຸກ 1.999! @ # $$% ^ $% & * ສຸດທ້າຍແລ້ວ)"); input.imbue (std :: local (std :: locale (), digits_only ໃໝ່));std :: vector ຕົວເລກ {std :: istream_iterator (ວັດສະດຸປ້ອນ), {}};}

ແລະຍ້ອນວ່າທ້ອງຖິ່ນເວົ້າວ່າທຸກສິ່ງທຸກຢ່າງຍົກເວັ້ນຕົວເລກແມ່ນພື້ນທີ່ສີຂາວ, ທຸກສິ່ງທີ່ເພີ່ມເຕີມລະຫວ່າງຕົວເລກຈະຖືກປະຕິບັດເປັນພື້ນທີ່ສີຂາວ (ຕົວຢ່າງ, ໂດຍບໍ່ສົນໃຈຢ່າງງຽບໆ) ດັ່ງນັ້ນພວກເຮົາພຽງແຕ່ໄດ້ຕົວເລກ.


ຕອບ 5:

ທ່ານສາມາດອ່ານຕົວເລກໃນແຟ້ມ txt ໂດຍລະຫັດຕໍ່ໄປນີ້.

# ປະກອບ

# ປະກອບ

# ປະກອບ

void ຫລັກ ()

{char ch; int a; int ມາຮອດ [[30]; int i = 0;

ifstream f1 (“ abc.txt”);

ໃນຂະນະທີ່ (! f1.eof ())

{

fi >> ch;

a = static_cast ch;

arr [i] = a;

}

f1.close ();

getch ();

}

ໂປແກຼມນີ້ອ່ານເອກະສານຂໍ້ຄວາມເຊິ່ງຄາດວ່າຖືກສ້າງມາກ່ອນໂຄງການນີ້, ເພາະວ່າເອກະສານແມ່ນຢູ່ໃນຮູບແບບ txt ດັ່ງນັ້ນພວກເຮົາຈະເກັບຕົວເລກ ໜຶ່ງ ໄວ້ເປັນ char ຕົວປ່ຽນເປັນຕົວປ່ຽນ char ປະເພດສາມາດເກັບຕົວອັກສອນໄດ້ແລະຫຼັງຈາກນັ້ນພວກເຮົາຈະໃຊ້ຟັງຊັນ static_cast () ເພື່ອ ໂຍນຄ່າຕົວລະຄອນເຂົ້າໃນມູນຄ່າປະເພດ integer ແລະໃສ່ມັນໃສ່ int a ແລະຫຼັງຈາກນັ້ນພວກເຮົາຈະ ນຳ ໃຊ້ຕົວແປເພື່ອເກັບຄ່າຂອງມັນເຂົ້າໃນ array ເປັນ ໜຶ່ງ ດຽວ.

ຂອບ​ໃຈ …..


ຕອບ 6:

ຂ້ອຍຈະບໍ່ຂຽນລະຫັດ, ແຕ່ຂ້ອຍຈະອະທິບາຍໃຫ້ດີທີ່ສຸດ. ການ ນຳ ໃຊ້ຫົວຂໍ້ ifstream, ທ່ານຕ້ອງການເຊື່ອມຕໍ່ຈົນກ່ວາ EOF (ສິ້ນສຸດເອກະສານ) ພົບຢູ່ໃນວັດຖຸ ifstream ຂອງທ່ານ. ໃນຂະນະທີ່ເຊື່ອມຕໍ່ອ່ານແຕ່ລະແຖວຂອງຂໍ້ຄວາມໄປເປັນຕົວແປຊ່ອຍແນ່. ແບ່ງປັນ (tokenize) ແຕ່ລະສາຍເປັນພາກສ່ວນທີ່ແຍກອອກຈາກບ່ອນຫວ່າງ. ສຳ ລັບແຕ່ລະສ່ວນ (token), ທົດສອບເພື່ອເບິ່ງວ່າມັນສາມາດປ່ຽນເປັນເລກເຕັມ - ຖ້າມັນສາມາດເຮັດໄດ້, ຫຼັງຈາກນັ້ນຕື່ມໃສ່ບັນຊີລາຍຊື່ຂອງທ່ານ, ຖ້າບໍ່ດັ່ງນັ້ນກໍ່ຂ້າມໄປບ່ອນຕໍ່ໄປ ສະນັ້ນສິ່ງທີ່ ສຳ ຄັນທ່ານຈະມີ loop ນອກທີ່ໄດ້ຮັບແຖວຂອງຕົວ ໜັງ ສືແລະ loop ພາຍໃນເຊິ່ງແຍກແຕ່ລະເສັ້ນຂອງຂໍ້ຄວາມເປັນສ່ວນຕ່າງໆແລະພະຍາຍາມສ້າງຕົວເລກຈາກມັນ.

ເມື່ອທ່ານໄດ້ຮັບການຊ່ວຍເຫຼືອຈາກການລ້າສຸດຂອງວົງແຫວນພາຍໃນແລະພາຍນອກ, ທ່ານມີລາຍຊື່ທີ່ທ່ານສາມາດເຮັດຫຍັງໄດ້.


ຕອບ 7:

ບອກວ່າທ່ານມີເອກະສານຊື່ວ່າ input.txt, ທ່ານສາມາດໃຊ້ snippets ລະຫັດຕໍ່ໄປນີ້ເພື່ອອ່ານເລກເຕັມຈາກແຟ້ມ. ຫວັງວ່າມັນຊ່ວຍໄດ້ :-)

# ປະກອບ ການໃຊ້ namespace std;const int sz = 1001; // ຕັ້ງ sz ເຖິງຂະ ໜາດ max ຂອງຂບວນint array [sz];int ຕົ້ນຕໍ (){ freopen ("input.txt", "r", stdin); int index = 0, ເລກ; /// scan ຈົນສິ້ນເອກະສານ ໃນຂະນະທີ່ (scanf ("% d", & num) == 1) { array [ດັດນີ ++] = ເລກ; } ສຳ ລັບ (int i = 0; i printf ("% d", ອາເລ [i]); printf ("\ n"); ກັບຄືນ 0;}

ຕອບ 8:

ທ່ານສາມາດເລີ່ມຕົ້ນຮຽນຮູ້ວິທີການຂຽນໂປແກມ…

ດັ່ງນັ້ນເອກະສານຂໍ້ຄວາມມີຕົວເລກ (ASCII 48..57, ອາດຈະເປັນ 'e' ແລະ '-' ແລະ '.') ແລະຕົວແຍກ (ASCII 13,10,9,32, ອັນໃດກໍ່ຕາມແມ່ນສານພິດຂອງທ່ານ).

ດັ່ງນັ້ນທ່ານຈັດສັນຂະ ໜາດ ໃຫຍ່ int, ຍາວ int ອັນໃດກໍ່ໄດ້ແລະເລີ່ມຕົ້ນຂະຫຍາຍມັນໃນຂະນະທີ່ ກຳ ລັງແຍກເອກະສານໄບຕ໌ໂດຍໄບຕ໌ຫລືສາຍໂດຍໃຊ້ຊ່ອຍແນ່ຈົນກວ່າຕົວແຍກຕໍ່ໄປ.

ເຈົ້າຮູ້ບໍ່ວ່າເປັນຫຍັງເງິນເດືອນຂອງຂ້ອຍສູງ? ເຮັດໃຫ້ຂ້ອຍໄດ້ເຮັດສິ່ງນີ້ດ້ວຍຕົວຂ້ອຍເອງ, ລົງທຶນຫຼາຍເວລາແລະນາຍຈ້າງຮູ້ເລື່ອງນີ້.


ຕອບ 9:

ທ່ານ ຈຳ ເປັນຕ້ອງຫາຜົນປະໂຫຍດໃນອິນເຕີເນັດທີ່ແປງເອກະສານຂໍ້ຄວາມຂອງທ່ານໃນ C-array. ຖ້າເອກະສານຂໍ້ຄວາມຂອງທ່ານຖືກຂຽນເປັນຮູບແບບ csv (ຄຸນຄ່າແຍກດ້ວຍເຄື່ອງ ໝາຍ ຈຸດ), ຂ້ອຍຄິດວ່າທ່ານຈະບໍ່ມີບັນຫາໃນການຊອກຫາຜົນປະໂຫຍດດັ່ງກ່າວ. ເວົ້າອີກຢ່າງ ໜຶ່ງ, ເອກະສານຂໍ້ຄວາມຂອງທ່ານຕ້ອງສອດຄ່ອງກັບມາດຕະຖານທີ່ຮູ້ກັນ, ໃນກໍລະນີນີ້ທ່ານຈະປ່ຽນເປັນ C-array ໄດ້ງ່າຍ.


ຕອບ 10:

ວິທີການແບບ C ແບບເກົ່າແກ່ແມ່ນຈະໃຊ້ fscanf

ວິທີການ C ++ ອາດຈະແມ່ນການໃຊ້ ifstream ຮ່ວມກັບ stringstream.

ທ່ານອາດຈະບໍ່ ຈຳ ເປັນຕ້ອງໃຊ້ສາຍ.