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的建议。