我尝试使用std::cin
数组从char[]
读取字符。
这是一个简单的程序:
#include <iostream>
#include <conio.h>
#include <iomanip>
using namespace std;
int main() {
int age, years;
char name[20];
cout << "Enter your age in years: " << endl;
cin >> years;
cout << "Enter your name in years: " << name[15] << endl;
age = years * 12;
cout << " Your age in months is: " << age << endl;
cout << "Your name is: " << name[15] << endl;
return 0;
}
这就是我得到的输出
Enter your age in years:
19
Enter your name in years:
Your age in months is: 228
Your name is:
它没有从std::cin
识别数组。
任何人都可以提供帮助?
答案 0 :(得分:1)
#include <iostream>
#include <conio.h>
#include <iomanip>
using namespace std;
int main(){
int age , years ;
char name[20];
cout <<"Enter your age in years: "<< endl;
cin >> years;
cout <<"Enter your name in years: " <<endl;
cin >> name;
age = years*12;
cout << " Your age in months is: " << age <<endl;
cout << "Your name is: "<< name <<endl;
return 0;
}
您的代码有两个不同之处:
cin << name;
(...)
cout << name << endl;
我假设你想到
cout&lt;&lt; &#34;输入你的姓名&#34; &LT;&LT; name [15]&lt;&lt; ENDL;
会让它要求输入。这不是cout
的作用。 Cout
打印出控制台上的内容,它不会要求输入。这是cin
的任务。
此外,您不要在数组名称之后放置[15],这只会打印出数组中的第15个字符,只要输入的名称长度不到15就会成为垃圾字符。
答案 1 :(得分:0)
int age, years;
char name[20];
cout << "Enter your age in years: " << endl;
cin >> years;
cout << "Enter your name in years: " << endl;
age = years * 12;
cin >> name;
cout << " Your age in months is: " << age << endl;
cout << "Your name is: " << name << endl;
cin.get();