C++ 正在读取文件,但跳过一个字符

C++ 正在读取文件,但跳过一个字符,c++,C++,我正试图通过我的程序读取文件。除了一件事之外,我已经完成了所有大部分的工作,这就是为什么我的程序跳过了文件的第一个字符。我在这里粘贴选定的代码 ifstream inFile; char inFileName[] = "inFile.txt"; inFile.open(inFileName, ios::in); char name[20], salary[20]; char c; while((c = inFile.get()) != EOF){

我正试图通过我的程序读取文件。除了一件事之外,我已经完成了所有大部分的工作,这就是为什么我的程序跳过了文件的第一个字符。我在这里粘贴选定的代码

  ifstream inFile;
  char inFileName[] = "inFile.txt";
  inFile.open(inFileName, ios::in);

  char name[20], salary[20];
  char c;  

  while((c = inFile.get()) != EOF){     
     inFile >> name >> salary; 
  }
而文件中的第一个字是

Aamir 
但是我的程序打印出来了

amir 
请指导我解决这个问题。 我还想知道一件事,在while循环中我还能给出什么条件


谢谢

此块正是您所说的要避免的:

while((c = inFile.get()) != EOF){     
     inFile >> name >> salary; 
  }

很明显,你先读一个字符,然后再读其余的。你扔掉第一个角色。别这样。相反,只要说
(infle>>name>>salary){…}

infle.get()将读取一个字符,而后面的infle将读取下一个字符。

您确实编写了这段代码

while((c = inFile.get()) != EOF){     
     inFile >> name >> salary; 
  }
我们可以很容易地看到,您正在阅读这里的第一个字符

while((c = inFile.get()) != EOF)
之后,你们将在这里阅读剩下的内容

{     
   inFile >> name >> salary; 
}
或者,我的建议是您应该阅读整个文件,包括第一个字符

while(inFile >> name >> salary){
           //All stuff here
 }

调用
infle.get()
时,它会从文件中读取一个字符。然后
infle>>name>>薪水
从下一个字符开始。感谢亲爱的@john Zwinck的建议。