Tôi đã đoạn mã sau:Issue với cin khi không gian được nhập, sử dụng chuỗi lớp
main.cpp
#include <iostream>
#include <string>
using namespace std;
string name;
string age;
int main() {
cout <<"Name: ";
cin >> name;
cout << endl;
cout <<"Age: ";
cin >> age;
cout << endl;
cout << "Your name is " << name << ", and you are " << age << " years old." << endl;
cout << "Press enter to close this application" << endl;
getchar();
return 0;
}
tôi nhận thấy rằng nếu tôi đặt một không gian ở đầu vào của tôi cho tên đó nó đã giành không cho tôi một cơ hội để nhập tên, và nó sẽ xem các mục nhập sau khi không gian như tuổi tác. Tôi xin lỗi nếu đây là một lỗi newbie, mà nó có thể là. Trước đây tôi đã lập trình Java và quyết định tôi muốn chuyển sang C++ vì nó phù hợp hơn với nhu cầu của tôi. Tôi cũng có thể định dạng mã của tôi lạ với các tiêu chuẩn của bạn, xin vui lòng sửa nó nếu bạn muốn.
Tôi cũng đã nhận thấy lỗi khác, điều mà tôi không bao giờ thực sự có vấn đề gì với trong Java. Tôi không thể tìm ra cách ngăn chặn nó ngay lập tức đóng cửa khi nó kết thúc quá trình xử lý. Tôi đã nghe nói bạn có thể sử dụng "hệ thống. (" Tạm dừng "), nhưng tôi cũng đã được nói không sử dụng nó.Tôi thực sự bối rối về những gì để sử dụng.Tôi đã nghe sử dụng getchar() ;, nhưng nó dường như không làm gì cả.
Bất kỳ trợ giúp sẽ được đánh giá rất nhiều, như tôi là một người mới bắt đầu hoàn tất khi nói đến C++.
@chris Tôi muốn chọn nhận xét của bạn làm câu trả lời nhưng tôi thực sự không nghĩ nó sẽ cho tôi. Cảm ơn sự giúp đỡ của bạn. Bạn có nhớ đăng lại hay cái gì đó như một câu trả lời để tôi có thể chọn nó? –
Tôi đã quyết định trước nhận xét của bạn để đưa ra câu trả lời chi tiết hơn. Nó ở đó (và hy vọng không có những sai lầm tinh tế) nếu bạn muốn đọc nó. – chris
Ồ, và lý do 'getchar' của bạn không hoạt động là lý do tương tự ví dụ đầu tiên của tôi để thay thế' system ("pause") 'không hoạt động. Nó được giải thích trong câu trả lời. – chris