01/10/2018, 09:04
Đoạn code Input và Output này chạy như thế nào và cách khắc phục
fstream file_lock("D:/file.txt", ios::in);
int n;
file_lock >> n; /*nếu file không có giá trị nào thì n sẽ bé hơn không*/
file_lock.close();
if(n < 0)
{
file_lock.open("D:/file.txt", ios::out);
file_lock << 5;
file_lock.close();
}
file_lock.open("D:/file.txt", ios::in);
file_lock.close();
file_lock >> m;
cout << m <<endl;
mình đang học phần Input và Output, và khi mình thử viết một chương trình
trong đó “file.txt” là một tệp chỉ được dùng để chứa 1 số nguyên duy nhất
mình kiểm tra xem tệp có dữ liệu hay không nếu không thì sẽ được nhập vào là số 5
sau đó sẽ cho in ra giá trị đã nhập vào hoặc giá trị sẵn có, nhưng tại sau nó lại luôn cho ra giá trị gì tầm bậy
Bài liên quan
mình đã giải quyết được bằng cách viết một hàm ghi dữ liêu vào file và đã ghi được
tuy nhiên mình vẫn chưa hiểu được tại sao lại như vậy
Bạn chỉ up một đoạn code nên mình nhận xét cho đoạn code này:
file_lock != NULL
.close
trước khi đọc giá trị vàom
?int n;
khai báo kiểu này thì n có giá trị nào cũng được, đâu phải là giá trị < 0, làm sao ktra
if (n < 0)
là xong được…muốn kiểm tra
file_lock >> n;
có đọc được giá trị nào ko thì… xài thẳng nó luôn trong điều kiện if: