Tôi đang thử nghiệm một số đoạn trích mà tôi đã tìm thấy trên web bằng cách sử dụng g + + từ MinGW. Đây là trình biên dịch C++ ... tại sao sau đó nó biên dịch đúng C .... tại sao mọi người đan xen C và C++.Khi nào nên dùng printf/scanf vs cout/cin?
Câu hỏi cụ thể là: Có phải O.K. để sử dụng cả C và C++ và biên dịch theo g ++. Nếu câu trả lời là có, điều này làm cho cuộc sống của tôi dễ dàng như tôi không phải sửa đổi mã.
Lạ lùng thay ... để có được một số C++ để làm việc, đặc biệt là khi đi qua một chuỗi đến một constructor ifstream nó đòi hỏi một chuỗi loại C ...
Tôi đoán sẽ là vì C++ phụ thuộc vào C xây dựng tại thời gian là OK để viết hai ngôn ngữ với nhau.
Tuy nhiên, dưới dạng kiểu dáng bạn nên giải quyết trên cout
/cin
hoặc printf
/scanf
.
C về bản chất là một tập con của C++. Vào thời điểm C++ xuất hiện có các mã của mã trong C (vẫn còn), do đó bạn không thể mong đợi làm cho hai ngôn ngữ không tương thích. – FailedDev
Lưu ý: như C++ 11, bạn cũng có thể xây dựng một 'std :: ifstream' từ' const std :: string & '(ví dụ xem phần 27.9.1.7 của [last draft] (http: // www. open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf)). – reima