Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;fstream是否继续读取相同的前5行?_C++_File Io_While Loop_Ifstream_File Pointer - Fatal编程技术网

C++ C++;fstream是否继续读取相同的前5行?

C++ C++;fstream是否继续读取相同的前5行?,c++,file-io,while-loop,ifstream,file-pointer,C++,File Io,While Loop,Ifstream,File Pointer,我真的很沮丧。我正在尝试读取包含以下内容的txt文件: Arenas Edward 239924731 2525976612 Autry Richard 527646269 6028236739 使用此代码: #include <iostream> #include <fstream> #include <sstream> using namespace std; int main(int argc, const char * argv[]) {

我真的很沮丧。我正在尝试读取包含以下内容的txt文件:

Arenas
Edward
239924731
2525976612

Autry
Richard
527646269
6028236739
使用此代码:

#include <iostream>
#include <fstream>
#include <sstream>
using namespace std;

int main(int argc, const char * argv[])
{
     string line;
     string last, first;
     int uin, number;
     ifstream phoneBook;
     phoneBook.open("PhoneBook.txt");

    while (!phoneBook.eof()) {
        phoneBook >> last >> first >> uin >> number;
        cout << last << ", " << first << ", " << uin << ", " << number <<endl;
    }




    return 0;
}
我还尝试了这个版本的while循环:

while (phoneBook >> last >> first >> uin >> number) {

    cout << last << ", " << first << ", " << uin << ", " << number <<endl;
}
while(电话簿>>上次>>第一次>>uin>>号码){

cout可能存在不同类型的错误。使用的最佳方法是
ios::good

while (!phoneBook.good()) {

您的
数字
值太大,无法放入一个四字节有符号整数中。该值的最大值为2147483647(2^31-1),这就是为什么最后打印出来的原因。(您没有问这个问题;我不知道自己是如何注意到的!)


我想知道的是,在每条记录之间有一条额外的线。我发现讨论了<代码> fStase s和分隔符。我想知道它是否被困在空白行上,什么也不读,然后只输出相同的值:<代码>最后<代码>,<代码>第一< /代码>,<代码> uin < /代码>,和<代码>编号<代码>。.

我尝试了这个,但没有效果。它只循环了一次并打印了一个联系人。显然,它在第一次联系人时打印出来的效果很好。问题是while循环。它没有按预期运行!我在您评论时编辑了我的答案。(另外,您可能希望使用
long int
作为
number
变量。谢谢!我没有注意到这一点。另外,通常最好将电话号码存储为文本而不是整数。如果它以0开头呢?
while (!phoneBook.good()) {