如何在char数组中正确存储文件行? (C ++)

时间:2014-12-16 22:16:52

标签: c++ string input char

我试图将.txt文件的每一行读入一个char数组。

for(int i = 0; i <10; i++)
  { 
       fin.getline(lineChar, 164);      // place txt line into char array
       for(int a = 9; a<164; a+=1)      // remove first nine chars of garbage
           lineChar[a-9] = lineChar[a];
       name = getPlaceName(lineChar);
       cout<< name<<endl;
  }

我确切地知道每条线的长度(164),因为我检查并测试了它,以便在我尝试获得165个字符时崩溃。这适用于第一行,但后来我得到了胡言乱语。

Aaron
g



5 
9

文本文件包含以下行:

  PA4200100Aaronsburg                                                            485      209       1349064             0    0.520877    0.000000 40.900946 -77.453383

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您可以使用std来读取文件。

std::string str;

std::vector<std::string> myvec;

while( std::getline( myfile, str ) )
{
    myvec.push_back( str );
}

如果您需要在第一个9(名称)之后接下来的70个字符,您可以使用:

std:cout << str.substr( 9, 70 );