c ++代码的结果不正确

时间:2013-10-20 20:39:51

标签: c++

我正在写一个c ++代码,假设用一个人的全名(名字和姓氏用空格分隔)从键盘中读取,如果名字不在,则将名字的第一个字母改为大写,然后在屏幕上显示名称。

问题是每当我尝试编译我的代码时,我会在屏幕上看到我输入的第一个名字但不包括名字列表的第一个名字,但另一方面我得到姓氏我已经输了。例如,当我输入“josh fred simon”作为名字而“Pirch”作为Surname时,程序只输出=“fred simon Pirch”而没有名称“josh”。

另一件事是如果将输入名称的第一个字母改为大写,如果它没有以大写形式输入?

这是我的代码>>

的副本
#include<conio.h>  
#include<cctype>
#include<iostream>
#include<stdio.h>
#include<string>

using namespace std;

// main entry point for the program  
void main() {

  char FirstName[20];
  char SurName[20];

  cout << "Program to read the information about a person";  
  cout << "\nEnter your First Names please\n";  

  cin >> FirstName;  

  gets(FirstName);

  cout << "\nEnter your Surname please\n";      
  cin >> SurName;

  //Now displaying the information      
  cout<<"Details of Person\n\n";

  cout<<"Full Name of the Person: "<< FirstName << " " << SurName << endl;

  getch();  
}      

1 个答案:

答案 0 :(得分:2)

您正在阅读FirstName两次,首先是cin,然后是gets

cin >> FirstName;  
gets(FirstName); // remove this line

此外,在代码中使用单个IO库。使用<iostream>表示C ++代码并删除<stdio.h>