2013-03-07 4 views
2

이미 존재하는이 텍스트 파일을 읽어야합니다. 이 코드는 컴파일되고 작동하지만 한 줄에 한 단어 씩만 읽습니다. 예를 들어공백을 포함한 배열로 텍스트 파일을 읽는 중

는 :

  • 단어 1 word2 word3 word4
  • word5 word6 word7
  • 그러나 화면에 출력

word8의 word9 :

내 txt 파일은 다음과 같습니다
  • word1
  • ,
  • word2
  • word3 등 .. 나는 그것이 공백을 포함하여 배열에 txt 파일을 읽을 얻을 수있는 방법

?

#include <iostream> 
#include <fstream> 
#include <string> 

using namespace std; 

int main() 
{ 
    string friendConnections[9]; 
    string line; 
    int loop = 0; 

    ifstream networkFile("network.txt"); 

    if (networkFile.is_open()) 
    { 
     while (!networkFile.eof()) 
     { 
      istream& getline (networkFile >> line); 
      friendConnections[loop] = line; 
      cout << friendConnections[loop] << endl; 
      loop++; 
     } 
     networkFile.close(); 
    } 
    else cout << "Can't open file" << endl; 

    return 0; 
} 
+0

'cout << friendConnections [loop] << endl;'줄 바꿈 –

+0

'cout << friendConnections [loop] << endl' 대신에'cout << line'을하면 어떻게 될까요? – Floris

+0

btw istream & getline (networkFile >> line);은 무엇을 의미합니까? 내가 이해하는 한'getline'이라는 이름을 가진 레퍼런스가 생성되고 결코 사용되지 않고'networkFile'으로 초기화됩니다. –

답변

1

사용 while(std::getline(networkFile,line)) 대신 while(networkFile.eof())istream& getline (networkFile >> line);

istream operator>> 당신이 원하는하지 않은 공백까지 간다.

+0

정말 고마워요! 완벽하게 작동합니다! – user22

+0

@ user2142663 도움이 되었다면 받아 들일 수 있습니다. – Rapptz

+0

@ userboss22 예 아니오 대답에 동의합니까? –

관련 문제