cin使用char类型数组

时间:2017-09-21 02:06:35

标签: c++ arrays

我尝试使用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识别数组。

任何人都可以提供帮助?

2 个答案:

答案 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();